軟件測試 | Jenkinsfile語法
實現(xiàn) Pipeline 功能的腳本語言叫做 Jenkinsfile,由 Groovy 語言實現(xiàn)。Jenkinsfile 一般是放在項目根目 錄,隨項目一起受源代碼管理軟件控制,無需像創(chuàng)建"自由風格\"項目一樣,每次可能需要拷貝很多設 置到新項目,提供了一些直接的好處:
Pipeline 上的代碼審查/迭代
Pipeline 的審計跟蹤
Pipeline 的唯一真實來源,可以由項目的多個成員查看和編輯
Pipeline 支持:Declarative(在 Pipeline 2.5 中引入)和 Scripted Pipeline 兩種格式。兩者都支持建立 Pipeline,兩者都可以用于在 Web UI 中定義一個流水線 Jenkinsfile,將 Jenkinsfile 文件創(chuàng)建并檢查到 源代碼控制庫中通常被認為是最佳做法。
Declared Pipeline
Declared Pipeline 語句樹
Declared Pipeline 必須包含在固定格式 Pipeline {} 塊內,每個聲明語句必須獨立一行,行尾無需使用分 號。塊( blocks{} )只能包含章節(jié)(Sections),指令(Directives),步驟(Steps)或賦值語句。 Declared Pipeline 語句樹

塊 blocks{}
由大括號括起來的語句,如 Pipeline{},Section{},parameters{},script{}
章節(jié)(Sections)
章節(jié)中通常包含一個或多個指令或步驟。如 agent 、post、stages、steps
指令(Directives)
environment、options、parameters、triggers(觸發(fā))、stage、tools、when
節(jié)點(agent)
必須存在,agent 必須在 Pipeline 塊內的頂層定義,但 stage 內是否使用使可選的
參數(shù): any/none/label/node/docker/dockerfile
常用選項 label/cuetomWorkspace/reuseNode
示例:
構建后(post)
不是必須,用于 Pipeline 的最外層或者 stage{} 中,主要用于表達 Jenkins 完成構建動作之后需要做的 事情。 示例:
階段集 (stages)
必須存在,包括順序執(zhí)行的一個或多個 stage 命令,在 Pipeline 內僅能使用一次,通常位于 agent/ options 后面。
步驟 steps
必須存在,steps 位于 stage 指令塊內部,包括一個或多個 step。僅有一個 step 的情況下可以忽略關鍵 字 step 及其{}。
環(huán)境 environment
不是必須,environment 定義了一組全局的環(huán)境變量鍵值對,存在于 pipeline {} 或者 stage 指令內。執(zhí) 行特殊方法 credentials()可以獲取 Jenkins 中預定義的憑證明文內容。
示例:
選項 options
不是必須,預定義 Pipeline 專有的配置信息,僅可定義一次
示例:
參數(shù) parameters
不是必須, 定義參數(shù)化構建的參數(shù)可選參數(shù), 參數(shù)類型 booleanParam,choice,file,text, password,run,string 示例:
觸發(fā)器 triggers
不是必須,定義 Pipeline 被自動觸發(fā)的方式選項 cron、pollSCM、upstream
示例: