版本基準自動化之windows

來源:互聯網
上載者:User

標籤:blog   else   taskkill   環境   style   pat   gpo   思路   任務   

1、背景:

目前項目維護周期過程中,製作調試版本和對外發布版本次數比較頻繁,流程過於繁瑣和隨意,且打包製作人成為瓶頸,為了規範版本基準流程和實現全員自動化參與,擬定版本基準自動化方案。

 2、目標:

版本基準自動化方案的實施,主要任務分為組態管理自動化,編譯做包自動化,版本發布自動化。主要目標是實現一鍵式做包和發布,減少人為誤操作、釋放人力資源、提高開發效率。

3、環境:

軟體環境:Windows Server 2012 R2

硬體環境:記憶體:8G 硬碟:100G

組態工具:服務端:VisualSVN-Server-3.5.3-x64  用戶端:TortoiseSVN_x64_1.8.8.25755

做包工具:InstallShield 2010 / tar

傳輸工具:Xmanager4(Telent、SSH)

編譯環境:兩台虛擬機器:Windows Server 2012 R2 / 普華3.0

編譯工具:VS2008 / gcc

4、詳細說明:

1)確定版本封版時間

迭代任務劃分確定版本封版時間。

2)提交代碼

上傳代碼前,首先完成模組自驗,輸出單元測試報告,代碼需要進行檢視,由檢視人完代碼檢視報告,上傳SVN時按指定格式填寫資訊(上傳人,檢視人,修改說明,修改日期),格式不正確,無法提交。盡量做到一個功能點只上傳一次,強調一次性把事情做對。資料修改同樣需要經過檢視才能上傳。

3)鎖定配置庫

版本封版後,組態管理員關閉所有開發人員對配置庫的寫入權限,鎖定代碼,同時在基準伺服器上建立版本基準目錄。

4)環境清理

基準伺服器刪除上一次檢出的代碼,編譯伺服器刪除來自基準伺服器上傳的代碼、本地編譯產生的二進位檔案和安裝包。

5)代碼檢出

基準伺服器通過SVN工具檢出最新代碼。

6)壓縮上傳

將代碼壓縮打包,上傳至編譯伺服器制定目錄下。

7)解壓

將代碼壓縮打包解壓至目前的目錄下。

8)代碼編譯

執行編譯指令碼,完成代碼編譯。

9)軟體打包

Windows平台通過InstallShield工程實現軟體打包,Linux平台通過tar工具實現軟體打包。

10)上傳版本基準庫

安裝包上傳至基準版本庫指定目錄下。

11)取包自驗

開發人員從基準庫中取包自驗,若無功能性問題,可通知組態管理員完成基準,若出現問題,經討論合議修改方案後,實施代碼修改,完成自驗後通知組態管理員單獨開放代碼提交許可權,完成代碼上傳,基準流程返回鎖定配置庫流程。

12)版本基準

組態管理員將所有對外發布內容進行打包,完成MD5校正,並將對應代碼儲存至SVN的tag目錄下

5、流程圖:

 

好了說了這麼多開工吧,大致思路:

1、cleanwork.bat: 環境的清理,清除上次自動化打包產生的臨時檔案,並遠程執行93伺服器的計劃任務>clean.bat;

2、build.bat: 調用cleanwork.bat指令碼,並將svn伺服器ip為234中檢出代碼,利用WinRAR工具壓縮;

3、copyrar.bat: 將壓縮的檔案利用共用的方式發送到編譯伺服器中ip為93,並遠程執行93伺服器的計劃任務>main.bat;

4、main.bat: 執行93伺服器的控制指令碼,將將檔案解壓,

  4.1、alone_windows.bat: 執行編譯指令碼,這裡我java採用的是ant工具編譯,

  4.2、copyCinstall.bat: c採用的是vs,因為c這邊的最近沒怎麼開發,所以我就直接將以前編譯好的直接複製,

  4.3、啟動installShield打包工具,進行打包,copysetup.bat: 將打包檔案利用檔案分享權限設定的方式發送到svn伺服器中,並遠程執行234伺服器的計劃任務>opensetup.bat,

5、opensetup.bat: 最後開啟打包檔案所在的位置;

build.bat

rem 檢出代碼,並壓縮rem dq rem 2018/02/11@echo off set ResourceUrl=https://192.168.0.234/QHLDAP/src/6.0/trunk/windowsset ResourcePath=D:\yb\QHLDAP\6.0\src\Windowsset _winrar=C:\Progra~1\WinRAR\WinRAR.exeset svnUrl=https://192.168.0.234/QHLDAP/發貨檔案/6.0/trunkset _silent="D:\目錄服務管理系統\V6.0\QH-LDAP_6.01.001\安裝包\Windows"::遠程執行編譯伺服器中名為“cleanwindows_6.0”的計劃任務,刪除上次的檔案schtasks /run /s 192.168.0.93 /u administrator /p 123456 /tn cleanwindows_6.0::清除上次產生的檔案call D:\yb\QHLDAP\6.0\windows\cleanwork.bat::遠程編譯伺服器call D:\yb\QHLDAP\6.0\windows\runmstsc.batif not exist "%ResourcePath%" (::正在檢出代碼...    svn checkout  --username "autoscript" --password "123456" -q %ResourceUrl%  "%ResourcePath%" ) else ( :: 正在更新代碼...    TortoiseProc.exe /command:update /path:"%ResourcePath%" /closeonend:1)svn checkout  --username "autoscript" --password "123456" -q %svnUrl%  "%_silent%"rd /s /q %_silent%\.svn::壓縮檔,不壓縮.svn檔案 -a備份所有檔案 -ep1 儲存壓縮檔的結構 -ibck為後台壓縮 -R遍曆%_winrar% a -ep1  -R D:\yb\QHLDAP\6.0\src\trunk_win.rar D:\yb\QHLDAP\6.0\src\Windows\* ::複製檔案call D:\yb\QHLDAP\6.0\windows\copyrar.bat@echo on

cleanwork.bat

rem 清理檔案rem dq rem 2018/02/11set package=D:\目錄服務管理系統\V6.0\QH-LDAP_6.01.001\安裝包\Windows::刪除上次的壓縮檔del /q /s D:\yb\QHLDAP\6.0\src\trunk_win.rarrd /q /s %package%\apird /q /s %package%\docrd /q /s %package%\licenserd /q /s %package%\setupdel /q /s %package%\readme.txt

copyrar.bat

rem 複製壓縮檔到編譯伺服器中,並執行計畫任務rem dq rem 2018/02/11::建立共用net use \\192.168.0.93\yb\6.0\workspace 123456 /user:administrator::通過檔案分享權限設定的方式,複製壓縮檔到編譯伺服器中copy D:\yb\QHLDAP\6.0\src\trunk_win.rar \\192.168.0.93\yb\6.0\workspace\ ::遠程執行編譯伺服器中名為“QHLDAP_6.0_93”的計劃任務schtasks /run /s 192.168.0.93 /u administrator /p 123456 /tn QHLDAP_6.0_93

編譯伺服器93 

main.bat

rem  main control  rem Create by dqrem Create date 2018/01/09set _work=D:\yb\6.0\workspaceset _setuppath=D:\yb\6.0\workspace\package\QH-Ldap\Media\SINGLE_EXE_IMAGE\Package\Setup.exeset _classJar=D:\yb\6.0\workspace\package(winxldap)\winldap\GFALdap-Web\WEB\web\webapp\LDAPProject\WEB-INF\classes                rem decompression trunk_win.rar C:\Progra~1\WinRAR\WinRAR  x -ep1 -y %_work%\trunk_win.rar  %_work% ::rd /s /q %_work%\.svnrem run compilers.batcd /d "%_work%\package(winxldap)\script"call alone_windows.batcd /d "D:\yb\6.0\script"call D:\yb\6.0\scripts\copyCInstall.batdel /a /f /q "D:\yb\6.0\workspace\package(winxldap)\winldap\GFALdap-Web\WEB\web\webapp\LDAPProject\WEB-INF\classes\*.jar"rem run InstallShield start D:\yb\6.0\workspace\package\QH-LDAP.ismrem run ‘runmstsc‘ scheduled taskrem schtasks /run /s 192.168.0.234 /u administrator /p [email protected] /i /tn QHLDAP_6.0_234rem dynamic condition monitor :loopping localhost -n 3 > nulif not exist %_setuppath% goto loopping localhost -n 4 > nulcall D:\yb\6.0\scripts\copysetup.batrem close InstallShield servicetaskkill /f /im isdev.exe 

alone_windows.bat

rem compiler ‘initLdap‘ and ‘LDAPProject‘rem Create by dqrem Create date 2017/5/10@echo offset _filelog=debug.txtset _init=ant -f init.xmlset _Ldap=ant -f Ldap.xmlset _crt="D:\tools\SecureCRT "set _ant="D:\yb\6.0"set _tar=D:\yb\workspace\consoleset _currpath="D:\yb\6.0\workspace\package(winxldap)\script"set _compile_log=debug.txtset _upload_log="/../../../yb/workspace/package(winxldap)/script/%_filelog%"cd /d %_currpath%rem delete logif exist debug.txt ( del /q /f /a  %_filelog% )cd %_ant%rem compiler  rem call %_init%    call %_Ldap%rem start compiler c cd /d %_currpath%rem call prepare_windows.bat

copyCinstall.bat

rem clean D:\yb\workspace\*rem Create by dqrem Create date 2017/5/10@echo offset _bin=D:\yb\6.0\c\bin\*set _work=D:\yb\6.0\c\work\*set _setupBin=D:\yb\6.0\workspace\package(winxldap)\winldap\GFALdap-Web\SERVER\binset _setupWork=D:\yb\6.0\workspace\package(winxldap)\winldap\GFALdap-Web\SERVER\workcopy %_bin% %_setupBin%copy %_work% %_setupWork%

copysetup.bat

rem setup operationrem Create by dqrem Create date 2018/01/10rem copy to 192.168.0.234net use * /del /ynet use \\192.168.0.234 [email protected] /user:administratorcopy D:\yb\6.0\workspace\package\QH-Ldap\Media\SINGLE_EXE_IMAGE\Package\Setup.exe \\192.168.0.234\目錄服務管理系統\V6.0\QH-LDAP_6.01.001\安裝包\Windows\setuprem delete setup.exedel  D:\yb\6.0\workspace\package\QH-Ldap\Media\SINGLE_EXE_IMAGE\Package\Setup.exerem run ‘opensetup‘ scheduled taskschtasks /run /s 192.168.0.234 /u administrator /p [email protected] /i /tn opensetup6.0

clean.bat

rem clean D:\yb\workspace\*rem Create by dqrem Create date 2017/5/10@echo offset _work=D:\yb\6.0\workspaceset _log=D:\tools\compilerproject\alone\cleanlog.txtset _console=%_work%\consoleset _ldapserver=%_work%\ldapserverset _package=%_work%\packageset _package(windxldap)=%_work%\package(winxldap)set _trunk_win=%_work%\trunk_win.rarcd /d %_work% del /s /q %_trunk_win%  rd /s /q %_work%\.svn rd /s /q %_console%  rd /s /q %_ldapserver%  rd /s /q %_package%  rd /s /q %_package(windxldap)% 

一切弄好之後雙擊build.bat指令碼就好了,這裡筆者就不再介紹如何添加計劃任務、檔案分享權限設定、svn命令和WinRAR命令了,網上有很多相關的資料。

 

版本基準自動化之windows

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.