我試圖在源代碼管理塊執行之前執行一個程序並將源代碼下載到我的本地工作目錄。 prebuild任務在執行之後執行並且任務塊在執行之後執行。我倒了文檔,只是無法弄清楚。執行源代碼塊之前的任務cruisecontrol.net 1.5
我最終編寫了一個在代碼檢索之前運行的可執行文件。即使那時它也很脆弱。所以,我轉向了自動化質量保證。
我試圖在源代碼管理塊執行之前執行一個程序並將源代碼下載到我的本地工作目錄。 prebuild任務在執行之後執行並且任務塊在執行之後執行。我倒了文檔,只是無法弄清楚。執行源代碼塊之前的任務cruisecontrol.net 1.5
我最終編寫了一個在代碼檢索之前運行的可執行文件。即使那時它也很脆弱。所以,我轉向了自動化質量保證。
據我所知,這不是一個選項。持續集成的目的是獲取最新的代碼,然後執行構建。如果您需要進行某種類型的清理(也許文件刪除),則應在構建結束時執行此操作。這樣,在下一次構建啓動之前,它已經處於期望的狀態。
Prebuild DOES在源代碼管理獲得之前觸發。它在源代碼控制塊之後,但仍然是首先啓動。這裏有一個我一直在使用的例子:
<cb:define subversionpath="c:\Program Files\Subversion\bin\svn.exe"
/>
<cb:define name="svn50">
<executable>$(subversionpath)</executable>
<workingDirectory>D:\Projects\B50\Source</workingDirectory>
<trunkUrl>svn://machineName/branches/B_50/Source</trunkUrl>
<autoGetSource>true</autoGetSource>
</cb:define>
<project name="StreamlineCheckBuild" queue="B50">
<triggers>
<intervalTrigger seconds="180" />
</triggers>
<sourcecontrol type="svn">
<cb:svn50/>
<deleteObstructions>true</deleteObstructions>
<forceUpdate>true</forceUpdate>
</sourcecontrol>
<prebuild>
<exec>
<executable>$(subversionpath)</executable>
<buildArgs>cleanup</buildArgs>
<baseDirectory>D:\Projects\B50</baseDirectory>
</exec>
</prebuild>
<tasks>
...
</tasks>
</cruisecontrol>
不,不...至少對於type =「git」反正。 – xanadont 2014-04-17 18:07:08
我在prebuild中試過下面的簡單命令。在源代碼塊之前無法看到它被觸發。
<prebuild>
<exec>
<executable>cmd</executable>
<buildArgs>"/c MD C:\build\1.4"</buildArgs>
</exec>
..
</prebuild>
如果這不是一個選項,那麼最後這樣做可能是最好的解決方案。謝謝! – 2010-09-13 08:44:53
確保正在清理...... 任務位於,這樣可確保無論構建失敗還是成功,都會發生此問題。 –
xanadont
2014-04-17 18:06:29