【问题标题】:Skip a Job in the Jenkins pipeline在 Jenkins 管道中跳过作业
【发布时间】:2019-07-02 14:02:53
【问题描述】:
我有一个 Jenkins 管道,其中配置了 10 个作业,以便在构建后操作中一个接一个地运行。
每当 Job 的相关 git 代码发生更改时,都会触发构建,并且所有后续作业都会运行,尽管其余的 Job 代码未提交。
例如,在管道中的一系列 10 个作业中,如果在第二个作业中有代码更改但在第三个作业中没有,那么我想跳过第二个作业并直接构建第三个作业。
同样,任何代码未更改的作业都希望跳过并跳转到下一个作业。
如果有办法解决管道中不需要的构建,请帮助我。
提前致谢
我尝试使用 scm skip 和 ci skip 插件。
配置更改
对于不需要构建的作业,我需要跳过 jenkins 管道中的构建(如果没有代码更改)
【问题讨论】:
标签:
jenkins
jenkins-pipeline
jenkins-plugins
jenkins-groovy
【解决方案1】:
您可以使用它跳过执行构建的阶段,并且不会调用作业
import org.jenkinsci.plugins.pipeline.modeldefinition.Utils
if (noChanges)
{
Utils.markStageSkippedForConditional(STAGE_NAME)
}
【解决方案2】:
您可以使用 when 块跳过舞台。示例:
第一份工作:
stage{
// build steps
}
post {
build "job2"
}
第二份工作:
stage{
when{
expression{
changes_made != true // changes_made parameter should be set according to code changes
}
}
steps{
// build steps
}
}
post {
build "job3"
}
通过这种方式,如果任何代码被更改,您将根据事实跳过第二个作业的阶段。