Jenkins:如何跳过多分支管道中的特定阶段?
Jenkins: How to skip a specific stage in a multibranch pipeline?
我们所有的分支机构都有 "stage (build)"。暂时我们如何跳过这个阶段到 运行 在我们的多分支管道中的所有分支上。我知道一种解决方案是使用 when condition on stage 并要求所有开发人员将该分支拉入他们的分支。但那是大量的工作和协调。相反,我正在寻找一个全局配置,我们可以在任何分支上按名称简单地跳过该阶段。
听起来您将 Jenkinsfile 与代码放在一起,但想从管理的角度更改 Jenkinsfile 的运行方式。
您可以将这个阶段存储在一个单独的(版本控制风格的偏好)存储库中。在执行阶段之前,先加载存储库,然后加载脚本文件,然后在阶段中执行该文件中定义的方法。
或者,向构建作业添加一个参数(假设您没有通过 Jenkinsfile 中的选项设置参数),这是一个布尔值以使用或跳过该阶段,您可以在需要时修改项目配置打开或关闭它
这种方法怎么样?
stage('build') {
if(buildFlag=="disable"){
//jump to next stage
return;
}
//do something
}
buildFlag 可以是
- 同一管道中的一个简单变量
- 在 jenkins 中配置的全局变量。您可以暂时设置 disabled 以跳过 build 阶段并更改为 enabled 以恢复正常 [=28] =]
您也可以将状态设置为失败,而不是 return :
currentBuild.result = 'FAILURE'
或者抛出异常并退出整个作业或管道。
我们所有的分支机构都有 "stage (build)"。暂时我们如何跳过这个阶段到 运行 在我们的多分支管道中的所有分支上。我知道一种解决方案是使用 when condition on stage 并要求所有开发人员将该分支拉入他们的分支。但那是大量的工作和协调。相反,我正在寻找一个全局配置,我们可以在任何分支上按名称简单地跳过该阶段。
听起来您将 Jenkinsfile 与代码放在一起,但想从管理的角度更改 Jenkinsfile 的运行方式。
您可以将这个阶段存储在一个单独的(版本控制风格的偏好)存储库中。在执行阶段之前,先加载存储库,然后加载脚本文件,然后在阶段中执行该文件中定义的方法。
或者,向构建作业添加一个参数(假设您没有通过 Jenkinsfile 中的选项设置参数),这是一个布尔值以使用或跳过该阶段,您可以在需要时修改项目配置打开或关闭它
这种方法怎么样?
stage('build') {
if(buildFlag=="disable"){
//jump to next stage
return;
}
//do something
}
buildFlag 可以是
- 同一管道中的一个简单变量
- 在 jenkins 中配置的全局变量。您可以暂时设置 disabled 以跳过 build 阶段并更改为 enabled 以恢复正常 [=28] =]
您也可以将状态设置为失败,而不是 return :
currentBuild.result = 'FAILURE'
或者抛出异常并退出整个作业或管道。