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 步驟的功能。
本文並沒有挨個的介紹所有 teamcity 支援的 build 型別,而是介紹了最通用的指令碼命令執行方式。因為筆者認為只有指令碼方式才能夠處理更為複雜的編譯場景,屬於必須要掌握的最具實用價值的方式!
持續整合工具TeamCity配置使用
持續整合ci continuous integration 主要包括自動化的編譯 發布和測試整合,對於我們資訊系統專案開發非常有用。一般開發人員機器上會搭建自己的開發環境,整個專案在伺服器上會搭建測試環境,持續整合工具就可以完成整個專案整合部署的自動化,這裡主要講持續整合工具teamcity7.1....
TeamCity 配置第乙個工程
前面我們已經建立了teamcity server 和乙個 agent,接下來我們為乙個.net core 控制台程式配置自動化的編譯。我們在本地建立乙個簡單的 net core demo程式 hello 這裡假設您已經安裝了.net core 的 sdk mkdir hello cdhello do...
teamcity使用問題收集
一次操作中本來是要在乙個工程中刪除乙個子工程,但一不小心把整個工程都刪除了,頓時蒙了,這樣重新配置太麻煩了,冷靜下來後還是想盡量能恢復最好,下面的是恢復的過程 1 在teamcity的logs目錄下找到 teamcity server.log 這個檔案,最新的操作在最下面,可以看到如下資訊 was ...