<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      圖解持續集成--純命令行實現.Net項目每日構建(升級版本)

      圖解持續集成
      --純命令行實現.Net項目每日構建(升級版本)

      該工具源代碼下載    

            在《純命令行實現.Net項目每日構建》實現了完全自動化、可重復的構建工作,但隨著時間的推移,新的問題暴露了:由于所在公司是一家 產品開發+現場實施 型的軟件企業,十個人的研發團隊并發支持四、五十個項目,每天除了完成客戶個性化開發需求和溝通解決現場各種怪異問題之外,還要進行每日構建、版本發布(我們通常是一周對外發布一次版本,甚至臨時版本)、甚至提供不同形式的源代碼。在進度比較松的情況還能夠勉強應付,但在進度較為緊張的時候,花較大精力去做這種事情,團隊人員叫苦不迭。
           針對這種情況,我們對第一個構建版本進行了改造,加入了主界面,在界面上可以進行不同操作的選擇,如下圖所示:

      該界面上可以選擇不同操作,具體操作如下:
         0、退出:返回到命令行主程序
         1、生成DailyBuild每日版本發布用于測試回歸:該選項包括獲取源代碼、編譯及發布,作為BVT和每日測試回歸版本,該操作頻度一般為日頻度;
         2、生成ReleaseBuild發布測試版本:該選項包括獲取源代碼、編譯及發布,為BVT和每周版本發布版本,該操作頻度一般為周頻度;
         3、打包發布版本,包含幫助文件:打包指定版本程序包,包含幫助文件;
         4、打包發布版本,不包含幫助文件:打包指定版本程序包,不包含幫助文件;
         5、生成ReleaseBuild發布測試版本,并打包含幫助文件:在選項2基礎上,打包程序包,并包含幫助文件;
         6、生成ReleaseBuild發布測試版本,并打包不含幫助文件:在選項2基礎上,打包程序包,并不包含幫助文件;

       

      演示說明:
      由于選項1、2較為類似,將以選項1作為例子;選項3、4較為類型,將以選項4為實例;選項5、6較為類似,將以選項5為示例。


      1. 準備工作
      在D:\JRTJ目錄下建立如下文件夾:

      • BuildDaily:用于存放構建版本
      • BuildRelease:
      • BuildLogOfAuto:用戶存放構建日志
      • 自動編譯腳本:存放每日構建腳本及輔助腳本

      自動編譯腳本相關腳本說明: 
      • attrib.exe:文件屬性修改程序
      • cscript.exe:Win32控制臺腳本宿主引擎
      • iisvdir.vbs:IIS6.0中用戶創建虛擬目錄腳本
      • main.bat:構建主程序
      • replace.exe:運行在Framework1.1下,用于替換關鍵字的執行程序
      • version.exe:運行在Framework1.1下,用于版本號設置,加入當前時間并且每次自增1
      • version.txt:用于記錄當前版本號,具體格式參見構建流程中對版本號說明
      • xcopy.exe:復制文件使用執行程序

      2. 腳本解讀
      其中main.bat構建腳本內容如下:

      第一部分 
       1 @echo off
       2 ::    程序打包、版本發布、備份程序
       3 ::    create&edit by jz_guo 2008-1-8 17:25 
       4 ::    在windwo2003、iis6.0、framework1.1環境下測試通過
       5 ::    功能:1、生成DailyBuild每日版本發布用于測試回歸           菜單號 1
       6 ::          2、生成ReleaseBuild發布測試版本                 菜單號 2
       7 ::          3、打包發布版本,包含幫助文件                     菜單號 3
       8 ::          4、打包發布版本,不包含幫助文件                     菜單號 4        
       9 ::          5、生成ReleaseBuild發布測試版本,并打包含幫助文件    菜單號 5                        
      10 ::          6、生成ReleaseBuild發布測試版本,并打包不含幫助文件  菜單號 6                
      11 
      12 mode con lines=26
      13 title 進行程序打包、版本發布、備份程序
      14 color 1f
      15 cls
      16 
      17 set strCurrent=%cd%
      18 
      19 :: ----------------------檢測外部是否輸入為空后者是幫助信息--------------------
      20 if "%1%"=="/?" goto help                     :外部輸入/?則出現DOS的幫助提示
      21 if "%1%"=="/h" goto help                     :同上,輸入/
      22 if "%1%"=="/H" goto help                     :同上,分別給出了大小寫。
      23 
      24 :help
      25 rem ----------------------------圖形化幫助提示----------------------------
      26 echo.
      27 echo  #########################################################################
      28 echo  ##  向導    需要幫助請輸入?或者h                                         ##
      29 echo  ##  0、退出                                            輸入   0        ##
      30 echo  ##  1、生成DailyBuild每日版本發布用于測試回歸             輸入   1        ##
      31 echo  ##  2、生成ReleaseBuild 發布測試版本                    輸入   2        ##
      32 echo  ##  3、打包發布版本,包含幫助文件                         輸入   3        ##
      33 echo  ##  4、打包發布版本,不包含幫助文件                       輸入   4        ##
      34 echo  ##  5、生成ReleaseBuild發布測試版本,并打包含幫助文件      輸入   5        ##
      35 echo  ##  6、生成ReleaseBuild發布測試版本,并打包不含幫助文件    輸入   6        ##
      36 echo  #########################################################################
      37 echo.
      38 
      39 rem ----------------------------設置參數信息----------------------------
      40 :begin
      41 rem ---------------------------------------------------------
      42 rem 當前文件夾的路徑
      43 set strBatCurrPath=D:\JRTJ\自動編譯腳本\
      44 
      45 rem 設置日志存放的地址
      46 set LogFilePath=D:\JRTJ\BuildLogOfAuto\
      47 
      48 rem 大集中項目所在的路徑
      49 set GetToFolder=E:\VSS_DB_DJZ\綜合報送產品改造項目\編碼目錄\人行集中版\PBOCWeb\
      50 
      51 rem VSS相關的信息
      52 set path=D:\Program Files\Microsoft Visual Studio\Common\VSS\win32
      53 set ssdir=\\10.168.165.40\vss_db_djz
      54 set ssuser=guojingzhan
      55 set sspwd=guojingzhan
      56 set PathOfProjInVss=$/綜合報送產品改造項目/編碼目錄/人行集中版/PBOCWeb
      57 
      58 rem 編譯程序所在的路徑
      59 set DevelopPath=D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\
      60 
      61 rem 保存文件所在的路徑
      62 set TargetFolderPath_Daily=D:\JRTJ\BuildDaily\
      63 set TargetFolderPath_Release=D:\JRTJ\BuildRelease\
      64 
      65 rem 設置打包路徑
      66 set TargetPath=C:\
      67 rem ---------------------------------------------------------

       

       

      第二部分 
       1 rem ----------------------------設置參數信息----------------------------
       2 :begin
       3 rem ---------------------------------------------------------
       4 rem 當前文件夾的路徑
       5 set strBatCurrPath=D:\JRTJ\自動編譯腳本\
       6 
       7 rem 設置日志存放的地址
       8 set LogFilePath=D:\JRTJ\BuildLogOfAuto\
       9 
      10 rem 大集中項目所在的路徑
      11 set GetToFolder=E:\VSS_DB_DJZ\綜合報送產品改造項目\編碼目錄\人行集中版\PBOCWeb\
      12 
      13 rem VSS相關的信息
      14 set path=D:\Program Files\Microsoft Visual Studio\Common\VSS\win32
      15 set ssdir=\\10.168.165.40\vss_db_djz
      16 set ssuser=guojingzhan
      17 set sspwd=guojingzhan
      18 set PathOfProjInVss=$/綜合報送產品改造項目/編碼目錄/人行集中版/PBOCWeb
      19 
      20 rem 編譯程序所在的路徑
      21 set DevelopPath=D:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\
      22 
      23 rem 保存文件所在的路徑
      24 set TargetFolderPath_Daily=D:\JRTJ\BuildDaily\
      25 set TargetFolderPath_Release=D:\JRTJ\BuildRelease\
      26 
      27 rem 設置打包路徑
      28 set TargetPath=C:\
      29 rem ---------------------------------------------------------

       

       

      第三部分
       1 :CodeBuildContent
       2 rem --------------------------------------------------------------------
       3 echo 步驟一:從VSS獲取最新的文件到編譯文件夾下
       4 echo 設置日志存放的地址
       5 set LogFile=%LogFilePath%%date:~0,4%%date:~5,2%%date:~8,2%\
       6 md %LogFile%
       7 
       8 echo 刪除編譯文件夾下所有的文件
       9 rmdir //q %GetToFolder%
      10 md %GetToFolder%
      11 
      12 echo 從VSS目錄中獲取最新的版本到編譯目錄下
      13 ss get %PathOfProjInVss% -y%ssuser%,%sspwd% -I-Y -R -GL%GetToFolder% -O@%LogFile%codebuild.log
      14 
      15 
      16 echo 步驟二:對最新的程序進行編譯
      17 echo 遍歷設置DLL文件夾中文件為非只讀
      18 cd "%strBatCurrPath%"
      19 xcopy "%GetToFolder%PBOCWeb\PBOC.Web\Dll" "%GetToFolder%PBOCWeb\PBOC.Web\Dll1\" /s /e /h
      20 rmdir /s /q "%GetToFolder%PBOCWeb\PBOC.Web\Dll\"
      21 xcopy "%GetToFolder%PBOCWeb\PBOC.Web\Dll1" "%GetToFolder%PBOCWeb\PBOC.Web\Dll\" /s /e /h
      22 rmdir /s /q "%GetToFolder%PBOCWeb\PBOC.Web\Dll1\"
      23 
      24 echo 版本號的重新設定
      25 version version.txt
      26 
      27 echo 程序編譯
      28 "%DevelopPath%devenv" /rebuild debug "%GetToFolder%PBOCWeb\PBOCWeb.sln" /out "%LogFile%compiler.log"
      29 
      30 echo 步驟三:進行版本的發布
      31 echo 從編譯文件夾復制到發布文件夾
      32 setlocal enabledelayedexpansion
      33 set var=
      34 for /f %%i in (version.txt) do set var=!var!%%i
      35 set filename=%var%
      36 set Publisfolder=%TargetFolderPath%%filename%\
      37 cd "%strBatCurrPath%"
      38 xcopy "%GetToFolder:~0,-1%" "%Publisfolder%" /s /e /h /y >"%LogFile%xcopy.log"
      39 
      40 echo 發布應用
      41 cscript iisvdir.vbs /create "默認網站" "PBOC.Web_D_%filename%" "%Publisfolder%PBOCWeb\PBOC.Web"
      42 
      43 echo 修改文件的配置文件
      44 "%strBatCurrPath%replace" %TargetFolderPath%%filename%\PBOCWeb\PBOC.Web\Config\PBOC.NEW.config %TargetFolderPath%%filename%\ %GetToFolder%
      45 "%strBatCurrPath%replace" %TargetFolderPath%%filename%\PBOCWeb\PBOC.Web\web.config %TargetFolderPath%%filename%\ %GetToFolder%
      46 
      47 set SourcePath=%TargetFolderPath%%filename%\PBOCWeb\PBOC.Web
      48 if "%source%"=="5" goto Pack
      49 if "%source%"=="6" goto Pack
      50 goto begin
      51 rem --------------------------------------------------------------------

       

       

      第四部分
       1 rem ----------------------------打包發布版本----------------------------
       2 :PackRelease_Source
       3 set SourcePath=enter
       4 set /p SourcePath=請輸入需要打包項目(PBOC.Web)路徑:
       5 set "SourcePath=%SourcePath:"=%"
       6 if "%SourcePath%"=="enter" goto RePackRelease_Source
       7 goto PackRelease_Target
       8 
       9 :RePackRelease_Source
      10 set ReSourcePath=enter
      11 set /p ReSourcePath=你輸入的路徑為空,請重新輸入需要打包項目(PBOC.Web)路徑:
      12 set "ReSourcePath=%ReSourcePath:"=%"
      13 if "%ReSourcePath%"=="enter" goto RePackRelease_Source
      14 goto PackRelease_Target
      15 
      16 :PackRelease_Target
      17 set TargetPath=enter
      18 set /p TargetPath=請輸入存放打包路徑:
      19 set "TargetPath=%TargetPath:"=%"
      20 if "%SourcePath%"=="enter" goto RePackRelease_Target
      21 goto Pack
      22 
      23 :RePackRelease_Target
      24 set ReTargetPath=enter
      25 set /p ReTargetPath=你輸入的路徑為空,請重新輸入請輸入存放打包路徑:
      26 set "ReTargetPath=%ReTargetPath:"=%"
      27 if "%ReTargetPath%"=="enter" goto RePackRelease_Target
      28 goto Pack
      29 
      30 :Pack
      31 echo 步驟*:版本打包
      32 echo 復制文件夾到臨時目錄
      33 rmdir %TargetPath%PBOC.Web
      34 md %TargetPath%PBOC.Web
      35 "%strBatCurrPath%xcopy" "%SourcePath%" "%TargetPath%PBOC.Web" ////y
      36 set delPath=%TargetPath%PBOC.Web\
      37 if "%source%"=="3" goto Del_IncludeHelp 
      38 if "%source%"=="4" goto Del_NoIncludeHelp
      39 if "%source%"=="5" goto Del_IncludeHelp 
      40 if "%source%"=="6" goto Del_NoIncludeHelp
      41 echo 打包出現異常,請檢查!
      42 goto begin
      43 
      44 :Del_IncludeHelp
      45 echo 刪除指定類型文件,壓縮程序包
      46 del ///f %delPath%Web.config
      47 del ///f %delPath%*.cs %delPath%*.resx %delPath%*.pdb %delPath%*.scc %delPath%*.sln %delPath%*.vssscc %delPath%*.suo %delPath%*.vspscc %delPath%*.webinfo %delPath%*.csproj
      48 rd //q %delPath%config %delPath%Data %delPath%fckeditor %delPath%MenuXML %delPath%OfficeModel %delPath%Services %delPath%webctrl_client 
      49 "%strBatCurrPath%rar.exe" -y a "%TargetPath%PBOC.Web.rar" %TargetPath%PBOC.Web
      50 echo 打包成功
      51 echo.
      52 goto begin
      53 
      54 :Del_NoIncludeHelp
      55 echo 刪除指定類型文件,壓縮程序包
      56 del ///f %delPath%Web.config
      57 del ///f %delPath%*.cs %delPath%*.resx %delPath%*.pdb %delPath%*.scc %delPath%*.sln %delPath%*.vssscc %delPath%*.suo %delPath%*.vspscc %delPath%*.webinfo %delPath%*.csproj
      58 rd //q %delPath%config %delPath%Data %delPath%fckeditor %delPath%MenuXML %delPath%OfficeModel %delPath%Services %delPath%webctrl_client 
      59 del ///f %delPath%Pages\SysManager\SysHelp\help.mht 
      60 del ///f %delPath%Pages\SysManager\SysHelp\金融統計標準集中版幫助1.0.chm
      61 "%strBatCurrPath%\rar.exe" -y a "%TargetPath%PBOC.Web.rar" %TargetPath%PBOC.Web
      62 echo 打包成功
      63 echo.
      64 goto begin
      65 
      66 rem ----------------------------輸入錯誤提示----------------------------
      67 :warng
      68 echo 您選擇的操作有誤,請重新輸入!
      69 echo.
      70 goto begin

       

       

      3. 構建執行過程
      3.1. 啟動構建程序
      雙擊或者在命令行中調用main.bat批處理主運行腳本

      3.2. 生成DailyBuild每日版本發布用于測試回歸(選項1)
      3.2.1. 步驟一從VSS服務器獲取最新版本
      選擇操作1回車,顯示如下操作

      • 設置日志存放的地址
      • 刪除編譯文件夾下所有的文件
      • 從VSS獲取最新的文件到編譯文件夾下

      3.2.2. 步驟二編譯程序
      從VSS獲取最新版本后,進行如下操作:

      • 遍歷設置DLL文件夾中文件為非只讀(該步驟該項目個性化需要,不是必須)
      • 版本號的重新設定
      • 程序編譯

      3.2.3. 步驟三進行版本發布
      編譯通過以后,進行如下操作:
      從編譯文件夾復制到發布文件夾
      發布應用
      修改配置文件

      3.2.4. 構建結果查看
      日志信息
      發布程序

      IIS發布程序

      3.3. 生成ReleaseBuild發布測試版本,并打包含(選項5)
      該操作前三步驟與 3.2生成DailyBuild每日版本發布用于測試回歸(選項1) 相同,只是在此之上增加了版本打包,如下圖所示:

      調用rar壓縮文件進行壓縮

      在打包路徑可以看到打包文件夾PBOC.Web和壓縮包PBOC.Web.rar

      3.4. 打包發布版本,不包含幫助文件(選項4)
      通過選項4可以對任意版本繼續打包,其中選項3包含幫助文件,4不包含幫助文件。選擇選項4可以需要輸入打包項目(PBOC.Web)的路徑和輸入存放打包路徑,如下圖所示:

      4. 總結
      通過該工具構建好處:
      1、 減少了人力投入到這種重復、無味的工作中,執行構建命令后可以一邊喝茶一邊等待結果,也可以把寶貴的時間投入到產品開發中;
      2、 降低了項目集成風險,通過每日構建能夠在更短的時間內發現代碼的沖突,減少了解決這種問題時間。
      存在不足:
      雖然該構建工具中實現了構建完全自動化,但不足的是未引入自動化測試工具,不能夠自動獲得有效報告和共享構建信息,在后面的文章中,我們將介紹一些工具實現。

       

      posted @ 2011-08-25 16:18  shishanyuan  閱讀(3038)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 久久中文字幕国产精品| 精品亚洲综合一区二区三区| 国产欧美综合在线观看第十页 | 激情综合网激情综合| 色成年激情久久综合国产| 国产精品久久毛片av大全日韩| 国产午夜福利不卡在线观看| 免费无码黄十八禁网站| 好爽毛片一区二区三区四| 国产精品午夜福利免费看| 国产精品久久久久久无毒不卡| 综合色天天久久| 无码日韩做暖暖大全免费不卡| 清原| 亚洲狠狠婷婷综合久久久| 国产在线观看黄| 日韩a∨精品日韩在线观看 | 18禁精品一区二区三区| 国产成人精品日本亚洲网站 | 庐江县| 亚洲gv天堂无码男同在线观看| 精品综合久久久久久97| 国产一区二区三区四区激情| 日韩精品亚洲专在线电影| 丰满少妇内射一区| 夜夜嗨久久人成在日日夜夜| 国精产品一区一区三区mba下载| 日韩高清福利视频在线观看| 国产精品久久久久AV福利动漫 | 一本大道久久香蕉成人网| 国产久久热这里只有精品| 久久久久亚洲A√无码| 国产绿帽在线视频看| 扒开双腿猛进入喷水高潮叫声| 中文字幕日韩有码av| 亚成区成线在人线免费99| 国产白丝jk捆绑束缚调教视频| 日区中文字幕一区二区| 欧美大胆老熟妇乱子伦视频| 日韩精品中文字一区二区| 久久天天躁狠狠躁夜夜2020老熟妇|