您好,登錄后才能下訂單哦!
Build 過程往往是比較復雜的,因此 TeamCtiy 通過 build 步驟的方式讓您可以實現不同的應用場景。您可以在每個 build 步驟中只做一件事情,然后把一系列的 build 步驟組織起來按順序執行來完成 build 過程。先看一下 build 步驟配置的概覽:
每一個 Build 步驟都會對應一個 build runner 在背后完成真正的工作。我們要做的就是構思好 build 的過程,然后通過一系列的 build 步驟去實現它。在 build 的過程中,這些 build 步驟會被一個接一個的順序執行。當然,您可以通過 TeamCity 提供的 UI 方便的排列您的 build 步驟的順序。
TeamCity 會根據前一個 build 步驟的返回狀態和當前的 build 狀態來綜合判斷是否運行下一個 build 步驟。當滿足下面條件時 build 步驟的狀態被確定為失敗:build 步驟的執行過程返回了非零的退出代碼 并且該 build 的失敗條件配置為起作用。其它情況則認為 build 步驟的狀態為成功。
我們可以在 build 步驟中指定不同的執行策略來告訴 TeamCity 究竟要不要執行下一個 build 步驟:
只有在整個 build 處于成功的狀態時才執行該步驟。
在開始運行該 build 步驟前,build agent 會向 TeamCity Server 請求整個 build 的狀態,如果 build 的狀態已經是失敗,則跳過該步驟的執行。
前面所有 build 步驟必須都是成功的。
這種類型不會向 TeamCity Server 發送請求,只分析之前的 build 步驟有沒有失敗的。
即便前面的 build 步驟有失敗的也會執行。
不管之前的 build 步驟是否失敗,也不管整個 build 的狀態是否已失敗,都執行該 build 步驟。
總是執行,即便是收到了停止 build 的命令也要執行該 build 步驟。
即便是用戶在前面的 build 步驟中取消了整個 build 的執行,這個 build 步驟也依然會被執行。但是在這個 build 步驟執行的過程中,如果您取消 build,就可以終止它的執行。
接下來我們會演示如何創建一個命令行類型的 build 步驟。
TeamCity 提供了很智能的 “Auto-detect build steps” 功能,主要是搜索 VCS 目錄下的可識別的編譯配置文件然后自動生成 build 步驟。這種方式比較簡單,我們主要介紹能支持復雜配置的手動配置 build 步驟的方式,所以請選擇 “Add build step”。
TeamCity 內置支持幾乎所有的 build 類型:
我們可以選擇自己的項目的 build 類型,當然我們還可以選擇更通用的類型:Command Line。它可以執行我們寫的腳本,如 windows 中的 bat 腳本和 linux 中的 shell 腳本。哈哈,有了執行腳本的能力還有什么事情做不了呢!
下面我們就來介紹如何創建一個 Command Line 類型的 build 步驟。請選擇 Command Line 類型的 Runner type。
您可以為每一個 build 步驟設置名稱。注意,這不是一個必選項,您可以選擇什么也不填。
請選擇合適的執行策略,我們已經在前面詳細的解釋過了。
對于要執行的命令來言,工作目錄是非常重要的。如果設置不正確就會發生找不到文件的錯誤,所以一定要認真設置。您可以手動輸入相對于 checkout 目錄的路徑,也可以通過右側的工具進行選擇。如果您希望工作目錄就是 checkout 的目錄,那么就不需要進行設置,留空就可以了。
當選擇 Custom script 類型時,我們可以直接在輸入框中寫腳本命令。這么做的好處是不用管理腳本文件了,因為 TeamCity 會把您寫的腳本命令打包成腳本文件在 build 時執行。
如果是一個比較復雜的腳本,我們還是希望把它寫成一個單獨的腳本文件,這樣更好維護管理。此時若是想要向單獨的腳本文件傳遞參數又該怎么辦呢?
選擇 Executable with parameters 類型,可以執行腳本文件或者是可執行的二進制文件,并且可以傳遞命令行參數。上圖中我們就把 checkout 目錄傳遞給了 test.bat 腳本文件。
為了完成復雜的編譯過程,往往需要多個步驟按順序的執行。TeamCity 也提供了讓用戶可以重新排序 build 步驟的功能。
上圖為添加了兩個 build 步驟后點擊 “Reorder build steps” 按鈕的場景。此時build步驟會被列出,您可以用鼠標拖拽進行重新排序。完成后點擊 “Apply” 按鈕就可以了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。