
























想实现合并代码后才触发Pipeline流水线构建,可以借助强大的 Generic Webhook Trigger 插件做到
5. 创建merge request,观察数据
合并后GitLab的webhook触发了, 我们需要对比开启请求和合并请求的数据。找不同,找特点。
# approved状态
$.event_type = merge_request
$.object_attributes.state = opened
$.object_attributes.action = approved
# merge状态
$.event_type = merge_request
$.object_attributes.state = merged
$.object_attributes.action = merge
#拿到source和target分支
$.object_attributes.source_branch
$.object_attributes.target_branchgroovy
currentBuild.description = "Trigger: ${source_branch} > ${target_branch} \n${event_type} \n ${state} \n ${action}"
pipeline {
agent any
triggers {
GenericTrigger(causeString: 'Generic Cause',
genericVariables: [[defaultValue: '', key: 'event_type', regexpFilter: '', value: '$.event_type'],
[defaultValue: 'NULL', key: 'state', regexpFilter: '', value: '$.object_attributes.state'],
[defaultValue: 'NULL', key: 'action', regexpFilter: '', value: '$.object_attributes.action'],
[defaultValue: 'NULL', key: 'source_branch', regexpFilter: '', value: '$.object_attributes.source_branch'],
[defaultValue: 'NULL', key: 'target_branch', regexpFilter: '', value: '$.object_attributes.target_branch']],
printContributedVariables: true,
printPostContent: true,
regexpFilterExpression: '^merge_request\\smerged\\smerge$',
regexpFilterText: '$event_type $state $action',
token: 'devops-merge-trigger',
tokenCredentialId: '')
}
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
}此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。