新手快速上手Jenkins Job配置

Jenkins Job 型別

新手快速上手Jenkins Job配置

1.Freestyle project

這個是jenkins的基礎功能,可以用它來執行各種構建任務,他只能構建在一個電腦上,如果沒有太多的需求,這個job基本夠用了,它包含了所有基礎功能。

2.Pipeline

真實的工作環境有很多job,比如先編譯,然後執行靜態程式碼檢查、單元測試、然後部署伺服器、伺服器重啟、進行ui測試等。我們需要對這些job進行一些設定將它們的上下游關係配置好。這個時候就需要pipeline配置了。詳細的可以參考這篇文章

3.External job

用來監視外部執行的job。

4.Multi-configuration project

可以讓job跑在不同的機器上。這個需要新增機器(節點),流程的話可以參考這篇文章 5。

資料夾

這是一種可以把多個專案歸類到一起的方式,而不是專案本身的型別。請注意,這並不像Jenkins儀表板上傳統的“檢視”選項卡那樣,讓你按照專案列表篩選。更確切地說,它就像作業系統中的目錄資料夾。資料夾名稱是專案路徑的一部分。

Job配置介面

新手快速上手Jenkins Job配置

1。General:一般設定

**Project name:**專案名稱 Description:專案描述,多人寫作請一定要加上 Discard old builds:該選項配置如何拋棄舊的構建 每次構建相關的檔案都會儲存下來,將會漸漸耗光磁碟空間,為此提供兩種方式供選擇:

Days to keep builds:如果其值為非空的N,就留N天之內的構建檔案

Max # of builds to keep:如果#為非空,就公保留最多#個最近構建的相關檔案

days to keep artifcts 產品保留時間,但是log,歷史記錄會保留

builds to keep with artifacts 保留最近幾個構建的產品

This project is parameterized:可以設定使用者可輸入的引數,沒有輸入則使用預設值,有字串,多行字串,布林值等可以設定。點選瞭解更多

Throttle builds:設定兩個build任務之間最小間隔和同一個時間內最大任務數量

Disable this project:停止這個job,當例如原始碼不可用時,可以暫時勾選這個停止build

Execute concurrent builds if necessary: 如果可以會併發執行build。勾選上後。如果有足夠的執行緒池則會併發,否則不會。併發構建會在不同的workspace中。如果使用者自己設定的workspace則不會分開,這個是有風險的。

Restrict where this project can be run: 設定是否必須在某個機器上執行。如果是分散式部署或者遷移job,注意移除或修改此項配置

Quiet period:配置等待未發生提交變化的時間。 由於 jenkins檢測到程式碼變化時,就自動立即構建,但是有些情況下, 需要多次提交程式碼到版本控制系統上,此時,可能發生程式碼還沒完整提交就開始構建,造成構建失敗,為防止此種情況發生,可以配置值X,則jenkins會在程式碼變化後等待X秒,如果沒在發生程式碼提交,才開始構建,保證穩定性。

Block build when downstream project is building:該選項當多個相關聯的專案由一個提交所影響,但是它們必須以一個指定的順序進行構建的時候非常有用。當你選擇這個選項的時候,Jenkins將會在啟動這個構建之前,完成任何上游構建Job; 例如使用pipes的時候

2。Source Code Management:原始碼管理

透過這裡設定原始碼管理路徑,這個與後面的輪詢原始碼變化觸發編譯是成對的。不想設定或者後面有指令碼可以自主管理可以選擇none

新手快速上手Jenkins Job配置

3。 Build Triggers:構建觸發器

新手快速上手Jenkins Job配置

Trigger builds remotely (e.g., from scripts)

:外部透過url命令觸發,拼接token和url就可以進行遠端觸發了

Build after other projects are built:監控其他job的構建狀態,觸發此job。如監聽程式碼提交,然後觸發UITest,靜態分析等。

Build periodically:定時觸發。選擇 Build periodically,在 Schedule 中填寫 0 * * * _。第一個引數代表的是分鐘 minute,取值 0

59;第二個引數代表的是小時 hour,取值 0

23;第三個引數代表的是天 day,取值 1

31;第四個引數代表的是月 month,取值 1

12;最後一個引數代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。所以 0 _* * * 表示的就是每個小時的第 0 分鐘執行一次構建。舉個例子:每週六10點構建 0 10 * * 6,0-0分鐘, 10-10點 _-任意天 _-任務月份 6-週六, 0可以改為H。

Poll SCM:定時感知程式碼分支是否有變化,如果有變化的話,執行一次構建。示例:H/5 * * * * 每五分鐘去檢查一下遠端倉庫,看程式碼是否發生變化。 **GitHub hook trigger for GITScm polling:**hookplugin檢測到原始碼的push操作觸發構建,感覺Poll SCM更方便些,如果提交頻繁,則這個觸發就會頻繁,看業務需要設定。

4。Build Environment(設定構建環境)

新手快速上手Jenkins Job配置

**Delete workspace before build starts:**預設刪除所有的,也可以設定刪除特定的檔案 Patterns for files to be deleted:正則匹配刪除哪些檔案 Apply pattern also on directories:規則是否也應用到資料夾 Check parameter:是否刪除,是個bool值,true則刪除,false不刪除。為毛感覺這個有點雞肋 External Deletion Command:執行外部刪除命令

Abort the build if it’s stuck:構建阻塞的時候,根據超時策略處理。 Time-out strategy:超時策略,有絕對時間,相對時間,根據以前的構建時間判斷等 Time-out variable:超時時間 Time-out actions:超時後的處理,如終結,faile調或者寫描述 Add timestamps to the Console Output:在輸出介面新增時間戳 Use secret text(s) or file:使用密文,用於全域性性的管理密碼等,勾選後會在下方出現Binding,輸入需要的使用者名稱,密碼證書等就可以了

5。Build(構建)

這個可以執行多種命令,如window的批處理,shell等一般shell就可以了。平時的自定義編譯命令,打包等等,都可以寫在這裡。jenkins推薦將過長的命令寫到下載的原始碼裡,由這個裡面的shell命令呼叫。jenkins執行的時候會預設把所有的命令都打印出來,這樣方便除錯。可以建立多個build step,這些step是序列的,一個faile,,後面的step都不會執行了。

新手快速上手Jenkins Job配置

6。Post-build Actions

可以根據build的結果設定傳送郵件,打包,執行其他任務等等。build成功還是失敗都會走到這一步。

新手快速上手Jenkins Job配置