總共發現了兩種配置方法,分別是通過不同的插件實現
Generic Webhook Trigger
安裝插件:Generic Webhook Trigger
在Jenkinsfile中,添加配置:
triggers {
GenericTrigger (
// 構建時的標題
causeString: 'Triggered by $ref',
// 獲取POST參數中的變量,key指的是變量名,通過$ref來訪問對應的值,value指的是JSON匹配值(參考Jmeter的JSON提取器)
// ref指的是推送的分支,格式如:refs/heads/master
genericVariables: [[key: 'ref', value: '$.ref']],
// 打印獲取的變量的key-value,此處會打印如:ref=refs/heads/master
printContributedVariables: true,
// 打印POST傳遞的參數
printPostContent: true,
// regexpFilterExpression與regexpFilterExpression成對使用
// 當兩者相等時,會觸發對應分支的構建
regexpFilterExpression: '^refs/heads/(master|production)$',
regexpFilterText: '$ref',
// 與webhook中配置的token參數值一致
token: 'mytoken'
)
}
如:
在gitee中配置webhook,在Url中填入:
https://your_IP/generic-webhook-trigger/invoke?token=mytoken
如:
提交代碼后,gitee會觸發jenkins的多分支流水線項目掃描分支。當$ref
的值符合正則表達式^refs/heads/(master|production)$
,會觸發項目的構建。
注意:當你首次在Jenkinsfile配置triggers后,提交git倉庫后不會自動觸發構建。原因是:配置觸發構建的jenkinsfile未拉取到jenkins項目中。
其他更詳細的用法,請參考:https://gitbook.curiouser.top/origin/jenkins-generic-webhook-trigger插件.html
Multibranch Scan Webhook Trigger
安裝插件:Multibranch Scan Webhook Trigger
在多分支項目配置中的Scan Multibranch Pipeline Triggers
選擇並添加:
在gitee中配置webhook,在Url中填入:
https://your_IP/multibranch-webhook-trigger/invoke?token=mytoken
提交代碼后,gitee會觸發jenkins的多分支流水線項目構建你提交的對應的分支。
如果想要忽略某些分支,可通過Filter by name (with wildcards)
實現: