溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

TeamCity : 配置 Build 過(guò)程

發(fā)布時(shí)間:2020-07-14 12:12:37 來(lái)源:網(wǎng)絡(luò) 閱讀:387 作者:jjjyyy66 欄目:網(wǎng)絡(luò)安全

    

Build 過(guò)程往往是比較復(fù)雜的,因此 TeamCtiy 通過(guò) build 步驟的方式讓您可以實(shí)現(xiàn)不同的應(yīng)用場(chǎng)景。您可以在每個(gè) build 步驟中只做一件事情,然后把一系列的 build 步驟組織起來(lái)按順序執(zhí)行來(lái)完成 build 過(guò)程。先看一下 build 步驟配置的概覽:

TeamCity : 配置 Build 過(guò)程

每一個(gè) Build 步驟都會(huì)對(duì)應(yīng)一個(gè) build runner 在背后完成真正的工作。我們要做的就是構(gòu)思好 build 的過(guò)程,然后通過(guò)一系列的 build 步驟去實(shí)現(xiàn)它。在 build 的過(guò)程中,這些 build 步驟會(huì)被一個(gè)接一個(gè)的順序執(zhí)行。當(dāng)然,您可以通過(guò) TeamCity 提供的 UI 方便的排列您的 build 步驟的順序。

Build 步驟的執(zhí)行策略

TeamCity 會(huì)根據(jù)前一個(gè) build 步驟的返回狀態(tài)和當(dāng)前的 build 狀態(tài)來(lái)綜合判斷是否運(yùn)行下一個(gè) build 步驟。當(dāng)滿足下面條件時(shí) build 步驟的狀態(tài)被確定為失敗:build 步驟的執(zhí)行過(guò)程返回了非零的退出代碼 并且該 build 的失敗條件配置為起作用。其它情況則認(rèn)為 build 步驟的狀態(tài)為成功。
我們可以在 build 步驟中指定不同的執(zhí)行策略來(lái)告訴 TeamCity 究竟要不要執(zhí)行下一個(gè) build 步驟:

TeamCity : 配置 Build 過(guò)程

Only if build status is successful

只有在整個(gè) build 處于成功的狀態(tài)時(shí)才執(zhí)行該步驟。
在開(kāi)始運(yùn)行該 build 步驟前,build agent 會(huì)向 TeamCity Server 請(qǐng)求整個(gè) build 的狀態(tài),如果 build 的狀態(tài)已經(jīng)是失敗,則跳過(guò)該步驟的執(zhí)行。

If all previous steps finished successfully

前面所有 build 步驟必須都是成功的。
這種類型不會(huì)向 TeamCity Server 發(fā)送請(qǐng)求,只分析之前的 build 步驟有沒(méi)有失敗的。

Even if some of previous steps failed

即便前面的 build 步驟有失敗的也會(huì)執(zhí)行。
不管之前的 build 步驟是否失敗,也不管整個(gè) build 的狀態(tài)是否已失敗,都執(zhí)行該 build 步驟。

Always, even if build stop command was issued

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

接下來(lái)我們會(huì)演示如何創(chuàng)建一個(gè)命令行類型的 build 步驟。

手動(dòng)添加 Build 步驟

TeamCity : 配置 Build 過(guò)程

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

Runner type

TeamCity 內(nèi)置支持幾乎所有的 build 類型:

TeamCity : 配置 Build 過(guò)程

我們可以選擇自己的項(xiàng)目的 build 類型,當(dāng)然我們還可以選擇更通用的類型:Command Line。它可以執(zhí)行我們寫的腳本,如 windows 中的 bat 腳本和 linux 中的 shell 腳本。哈哈,有了執(zhí)行腳本的能力還有什么事情做不了呢!
下面我們就來(lái)介紹如何創(chuàng)建一個(gè) Command Line 類型的 build 步驟。請(qǐng)選擇 Command Line 類型的 Runner type。

Step name

TeamCity : 配置 Build 過(guò)程

 您可以為每一個(gè) build 步驟設(shè)置名稱。注意,這不是一個(gè)必選項(xiàng),您可以選擇什么也不填。

Execute step

請(qǐng)選擇合適的執(zhí)行策略,我們已經(jīng)在前面詳細(xì)的解釋過(guò)了。

Working directory

TeamCity : 配置 Build 過(guò)程

對(duì)于要執(zhí)行的命令來(lái)言,工作目錄是非常重要的。如果設(shè)置不正確就會(huì)發(fā)生找不到文件的錯(cuò)誤,所以一定要認(rèn)真設(shè)置。您可以手動(dòng)輸入相對(duì)于 checkout 目錄的路徑,也可以通過(guò)右側(cè)的工具進(jìn)行選擇。如果您希望工作目錄就是 checkout 的目錄,那么就不需要進(jìn)行設(shè)置,留空就可以了。

Custom script

TeamCity : 配置 Build 過(guò)程

當(dāng)選擇 Custom script 類型時(shí),我們可以直接在輸入框中寫腳本命令。這么做的好處是不用管理腳本文件了,因?yàn)?TeamCity 會(huì)把您寫的腳本命令打包成腳本文件在 build 時(shí)執(zhí)行。

Executable with parameters

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

TeamCity : 配置 Build 過(guò)程

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

創(chuàng)建多個(gè)步驟

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

TeamCity : 配置 Build 過(guò)程

上圖為添加了兩個(gè) build 步驟后點(diǎn)擊 “Reorder build steps” 按鈕的場(chǎng)景。此時(shí)build步驟會(huì)被列出,您可以用鼠標(biāo)拖拽進(jìn)行重新排序。完成后點(diǎn)擊 “Apply” 按鈕就可以了。

    

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI