【问题标题】:How to set Jenkins pipeline job to always build 'default' branch but only build other branches over night如何将 Jenkins 管道作业设置为始终构建“默认”分支,但只在夜间构建其他分支
【发布时间】:2016-08-29 04:17:17
【问题描述】:

假设 Jenkins 多分支管道作业使用属性策略来“抑制自动 SCM 触发”除“默认”之外的所有分支,您如何让 Jenkins 等到晚上(比如晚上 7 点到早上 6 点)来构建所有其他分支?

我们过去可以为每个作业单独设置 Poll SCM 策略,效果很好。

管道脚本允许您设置 pollSCM 管道触发器属性。但是,除非作业至少运行一次,否则它不会被设置,并且似乎存在一个缺陷,即作业被 scm 更改连续触发,从而降低了它的用处。

【问题讨论】:

    标签: jenkins jenkins-pipeline


    【解决方案1】:

    Jenkinsfile 属性(现在)可以配置轮询触发器并覆盖默认的触发行为。此示例为除“默认”和发布分支(始终构建)之外的所有内容启用每日构建

    def alwaysBuild = (env.BRANCH_NAME == "default" || env.BRANCH_NAME ==~ /release-.*/);
    properties([
        overrideIndexTriggers(alwaysBuild), 
        pipelineTriggers([pollSCM('@daily')])
    ]);  
    

    注意:截至 2016 年 9 月,似乎存在一个错误,即 pollSCM 每次更改都会触发多个构建。可能是这个bug:https://issues.jenkins-ci.org/browse/JENKINS-38443

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      相关资源
      最近更新 更多