我正在使用一个声明的Jenkins文件,该文件的安静时间是
options {
quietPeriod(180)
// more options
}
工具版本:
现在的问题是,在GitHub SCM更改上,一个独立的管道项目尊重静默期,而多分支管道项目则不这样做。它也不会返回错误,只会在接收到Webhooks时立即触发构建。
我知道与此有关的未解决问题JENKINS-37588。
由于我有数百个多分支项目,因此无法在build(job: 'my-job', quietPeriod: 180)
中使用上游包装器作业。
有人能找到解决方案或可行的替代方案吗?任何帮助将不胜感激。
答案 0 :(得分:3)
我认为-不幸的是-目前这是不可能的。
这里有未解决的票证:https://issues.jenkins-ci.org/browse/JENKINS-37588
此问题也已经有一个公开拉取请求:https://github.com/jenkinsci/branch-api-plugin/pull/190
答案 1 :(得分:0)
执行此操作后,多分支流水线尊重安静期:
在多分支管道中,配置>分支源>属性策略>添加属性>“禁止自动SCM触发”
在Jenkinsfile中,将构建触发器设置为“轮询SCM”,但不指定时间表。如果由Web挂钩触发,这仅会由于SCM更改而运行。 (我认为,如果您使用的是GitHub,则可以选择“用于GITScm轮询的GitHub挂钩触发器”)
在Jenkinsfile中,设置静默期。
在SCM上配置Web挂钩。
pipeline{
agent{label "Linux" }
options {
quietPeriod(180)
// more options
}
triggers {
pollSCM ''
}
stages{
stage("Test"){
steps{
echo "Test"
}
}
}
}