快速創建Jenkins Job

Jenkins Job 類型

image.png

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

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

3.External job
用來監視外部執行的job.

4.Multi-configuration project
可以讓job跑在不同的機器上.這個需要添加機器(節點),流程的話可以參考這篇文章
5.文件夾
這是一種可以把多個項目歸類到一起的方式,而不是項目本身的類型。請注意,這並不像Jenkins儀表板上傳統的“視圖”選項卡那樣,讓你按照項目列表篩選。更確切地說,它就像操作系統中的目錄文件夾。文件夾名稱是項目路徑的一部分。

Job配置界面

image.png

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
image.png

3. Build Triggers:構建觸發器

image.png

  • 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(設置構建環境)

image.png

  • 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都不會執行了.
image.png

6.Post-build Actions

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章