TeamCity : 配置 Build 過程


Build 過程往往是比較復雜的,因此 TeamCtiy 通過 build 步驟的方式讓您可以實現不同的應用場景。您可以在每個 build 步驟中只做一件事情,然后把一系列的 build 步驟組織起來按順序執行來完成 build 過程。先看一下 build 步驟配置的概覽:

每一個 Build 步驟都會對應一個 build runner 在背后完成真正的工作。我們要做的就是構思好 build 的過程,然后通過一系列的 build 步驟去實現它。在 build 的過程中,這些 build 步驟會被一個接一個的順序執行。當然,您可以通過 TeamCity 提供的 UI 方便的排列您的 build 步驟的順序。

Build 步驟的執行策略

TeamCity 會根據前一個 build 步驟的返回狀態和當前的 build 狀態來綜合判斷是否運行下一個 build 步驟。當滿足下面條件時 build 步驟的狀態被確定為失敗:build 步驟的執行過程返回了非零的退出代碼 並且該 build 的失敗條件配置為起作用。其它情況則認為 build 步驟的狀態為成功。
我們可以在 build 步驟中指定不同的執行策略來告訴 TeamCity 究竟要不要執行下一個 build 步驟:

Only if build status is successful

只有在整個 build 處於成功的狀態時才執行該步驟。
在開始運行該 build 步驟前,build agent 會向 TeamCity Server 請求整個 build 的狀態,如果 build 的狀態已經是失敗,則跳過該步驟的執行。

If all previous steps finished successfully

前面所有 build 步驟必須都是成功的。
這種類型不會向 TeamCity Server 發送請求,只分析之前的 build 步驟有沒有失敗的。

Even if some of previous steps failed

即便前面的 build 步驟有失敗的也會執行。
不管之前的 build 步驟是否失敗,也不管整個 build 的狀態是否已失敗,都執行該 build 步驟。

Always, even if build stop command was issued

總是執行,即便是收到了停止 build 的命令也要執行該 build 步驟。
即便是用戶在前面的 build 步驟中取消了整個 build 的執行,這個 build 步驟也依然會被執行。但是在這個 build 步驟執行的過程中,如果您取消 build,就可以終止它的執行。

接下來我們會演示如何創建一個命令行類型的 build 步驟。

手動添加 Build 步驟

TeamCity 提供了很智能的 “Auto-detect build steps” 功能,主要是搜索 VCS 目錄下的可識別的編譯配置文件然后自動生成 build 步驟。這種方式比較簡單,我們主要介紹能支持復雜配置的手動配置 build 步驟的方式,所以請選擇 “Add build step”。

Runner type

TeamCity 內置支持幾乎所有的 build 類型:

我們可以選擇自己的項目的 build 類型,當然我們還可以選擇更通用的類型:Command Line。它可以執行我們寫的腳本,如 windows 中的 bat 腳本和 linux 中的 shell 腳本。哈哈,有了執行腳本的能力還有什么事情做不了呢!
下面我們就來介紹如何創建一個 Command Line 類型的 build 步驟。請選擇 Command Line 類型的 Runner type。

Step name

 您可以為每一個 build 步驟設置名稱。注意,這不是一個必選項,您可以選擇什么也不填。

Execute step

請選擇合適的執行策略,我們已經在前面詳細的解釋過了。

Working directory

對於要執行的命令來言,工作目錄是非常重要的。如果設置不正確就會發生找不到文件的錯誤,所以一定要認真設置。您可以手動輸入相對於 checkout 目錄的路徑,也可以通過右側的工具進行選擇。如果您希望工作目錄就是 checkout 的目錄,那么就不需要進行設置,留空就可以了。

Custom script

當選擇 Custom script 類型時,我們可以直接在輸入框中寫腳本命令。這么做的好處是不用管理腳本文件了,因為 TeamCity 會把您寫的腳本命令打包成腳本文件在 build 時執行。

Executable with parameters

如果是一個比較復雜的腳本,我們還是希望把它寫成一個單獨的腳本文件,這樣更好維護管理。此時若是想要向單獨的腳本文件傳遞參數又該怎么辦呢?

選擇 Executable with parameters 類型,可以執行腳本文件或者是可執行的二進制文件,並且可以傳遞命令行參數。上圖中我們就把 checkout 目錄傳遞給了 test.bat 腳本文件。

創建多個步驟

為了完成復雜的編譯過程,往往需要多個步驟按順序的執行。TeamCity 也提供了讓用戶可以重新排序 build 步驟的功能。

上圖為添加了兩個 build 步驟后點擊 “Reorder build steps” 按鈕的場景。此時build步驟會被列出,您可以用鼠標拖拽進行重新排序。完成后點擊 “Apply” 按鈕就可以了。

總結

本文並沒有挨個的介紹所有 TeamCity 支持的 build 類型,而是介紹了最通用的腳本命令執行方式。因為筆者認為只有腳本方式才能夠處理更為復雜的編譯場景,屬於必須要掌握的最具實用價值的方式!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM