stage('Run only for pull requests to master branch or at the master branch') {
when {
anyOf {
branch 'master'
changeRequest target: 'master'
}
}
steps {
// this is a very long step for integration test that we don't want to execute often, but we need to execute before to merge to master
sh "${mvn} " +
"clean " +
"test-compile " +
"failsafe:integration-test failsafe:verify"
}
}
2条答案
按热度按时间rm5edbpk1#
使用(假设是github,但也有位桶等价物)
https://wiki.jenkins.io/display/JENKINS/GitHub+Branch+Source+Plugin来发现存储库以构建分支,而PR将允许您依赖Jenkins ENV变量。
这允许简单的if语句来确定构建是针对分支还是针对PR,因为PR是在PR-n的“分支”上构建的。然而,一旦PR打开,所有的提交都将被构建。
https://go.cloudbees.com/docs/cloudbees-documentation/cje-user-guide/index.html#github-branch-source
w6mmgewl2#
您可以使用Jenkins提供的changeRequest内置条件。
如果当前构建是针对“更改请求”(也称为GitHub和Bitbucket上的拉取请求、GitLab上的合并请求、Gerrit中的更改等),则执行阶段。如果未传递任何参数,则阶段将针对每个更改请求运行,例如:当{变更请求()}时。