gpt4 book ai didi

git - 如何仅在 pull 请求时在 Jenkins 中运行阶段?

转载 作者:行者123 更新时间:2023-12-04 23:24:48 25 4
gpt4 key购买 nike

我现在有一个基于 Jenkinsfile 的管道,其中有几个阶段,每次提交到 Github 时都会由 webhook 触发。我想在每次提交时保持“构建”和“单元测试”阶段运行,但只有在分支准备好接受 pull 请求时才运行“集成测试”阶段。

我想要的是:

stage("build)"{
// runs every commit
}
stage("unit tests"){
// runs every commit
}
stage("integration tests"){
// runs ONLY on pull request
}

我一直无法找到解决方案,有什么想法吗?

最佳答案

在#jenkins IRC channel 中询问后,我被指出了正确的方向。这可以使用 https://wiki.jenkins.io/display/JENKINS/SCM+Filter+Branch+PR+Plugin

脚本化管道:

if(env.CHANGE_ID) {
// do something because it's a pull request
} else {
// not a pull request
}

声明性管道:
pipeline {
stages {
stage('Example Deploy') {
when {
allOf {
environment name: 'CHANGE_ID', value: ''
branch 'master'
}
}
steps {
// not a pull request so do something
}
}
}

}

关于git - 如何仅在 pull 请求时在 Jenkins 中运行阶段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48102612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com