【问题标题】: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"
      }
      

      通过这种方式,如果任何代码被更改,您将根据事实跳过第二个作业的阶段。

      【讨论】:

        猜你喜欢
        • 2022-07-27
        • 1970-01-01
        • 2018-01-07
        • 1970-01-01
        • 2020-12-22
        • 2013-07-28
        • 1970-01-01
        • 1970-01-01
        • 2019-07-09
        相关资源
        最近更新 更多