我在Jenkins中建立了两个版本:buildA
和buildB
。我的开发人员将向buildA
提交代码并将其推送到buildB
,并且我想在buildA
仓库发出拉取请求时在buildA
上的Jenkins上触发构建作业。
我的build job: 'buildA', parameters: [gitParameter(name: 'BRANCH', value: env.BRANCH_NAME)]
的Jenkinsfile很简单:
buildB
这只会触发sh label: "Install dependencies", script: 'pip install -r requirements.txt'
sh label: 'Execute tests', script: "pytest --custom-parameter ${BRANCH}"'
(下面的Jenkinsfile代码段):
env.CHANGE_ID
到目前为止效果很好。但是,我一直注意到我的测试需要花费很长时间才能运行,并且我希望仅针对请求请求才触发测试。到目前为止,我已经确定了两种选择,并且想知道哪种选择更好:
选项1:据我了解,我可以通过使用refspec在下面设置此配置来监听仅请求请求事件:
选项2:我还听说您可以使用script {
if (env.CHANGE_ID) {
sh label: "Install dependencies", script: 'pip install -r requirements.txt'
sh label: 'Execute tests', script: "pytest --custom-parameter ${BRANCH}"'
}
}
检查请求请求事件。因此,我的管道脚本将被更改为
TxFrameReq
我的问题:使用以下哪个选项更适合获取分支名称并仅基于来自Git的请求请求?