天天看點

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

建立了 build 的配置以後,您既可以手動點選 "Run" 按鈕來觸發一次 build 過程,也可以通過 Triggers 配置實作自動觸發 build 過程。一個 trigger 就是一條規則:當某個事件發生時開始一次 build。TeamCity 内置支援多種觸發器類型:

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

對于同一個 build,我們可以應用多個觸發器,它們會按照各自的邏輯獨立的起作用。下面我們比較詳細的看下各類觸發器的用法。

VCS 觸發器在檢測到代碼變化後會自動觸發 build 過程。TeamCity 會根據您設定的時間間隔去檢測代碼的變化。如果這段時間中有多個 checkin,僅觸發一次 build。

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

需要注意的是當一個 build 配置有多個 VCS root 時,并不會為每個 VCS root 的變化觸發 build,而是在檢測過所有的 VCS root 後才決定是否觸發一次 build。

您還可以設定每個 checkin 都觸發一次 build。這需要選擇"Trigger a build on each check-in"。如果您希望同一個送出者的多次送出隻觸發一次 build,請把"Include seral check-ins in a build if they are from the same committer"也選上。

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

靜默期(Quiet Period)是個比較有趣的概念。設定後便不會在連續的幾次 checkin 過程中觸發 build (這幾次連續的checkin是一個完整的過程)。通俗點講,當檢測到最後一次變更後的一段時間(預設一分鐘)内沒有發現新的變更才觸發一次 build。

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

VCS 觸發器中還有個好玩的東西叫"VCS Trigger Rules"。通過規則的設定,你可以告訴 TeamCity 是否滿足觸發 build 的條件:

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

當我們要定時觸發 build 時就需要用到 Schedule 觸發器。

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

簡單的使用方式就是在 Date and Time 區域選擇合适的時間配置就可以了。此外 TeamCity 還支援 cron 格式的時間設定:

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

這為我們提供了更多的靈活性。

如果 build 之間有一定的依賴關系,比如後面的 build 依賴前一個 build 的産物,那麼就需要在前一個 build 完成時觸發下一個 build。Finish build 觸發器可以完美的完成這個任務:

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

隻需要選擇合适的 build configuration 就可以了。我們還可以根據前一個 build 是否成功來決定是否來觸發下一個 build:

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

當我們希望在 TeamCity 上 build 某個個人分支時就需要通過某個分支上的變更來觸發 build。Branch Remote Run 觸發器可以實作這樣的功能:

TeamCity : 自動觸發 BuildVCS 觸發器Schedule 觸發器Finish Build 觸發器Branch Remote Run 觸發器

本文轉自xsster51CTO部落格,原文連結: http://blog.51cto.com/12945177/1948530,如需轉載請自行聯系原作者

繼續閱讀