【问题标题】:Run Jenkins pipeline nightly continuously每晚连续运行 Jenkins 管道
【发布时间】:2021-08-22 18:04:19
【问题描述】:
我将 Jenkins 用于 OnCommit 和 Nightly 构建。我的构建触发器例如在周末:
H/25 * * * 0,6
或周一至周五:
H/25 0-5 * * *
夜间构建每 25 分钟运行一次。
但是这样我不能有效地利用时间,如果构建长度发生变化,我总是必须调整它。
例如,如何让构建从晚上 8 点到早上 6 点永久运行。一旦第一个构建完成,下一个应该开始。然后在早上 6 点开始最后一次构建。
【问题讨论】:
标签:
jenkins
jenkins-pipeline
jenkins-groovy
nightly-build
【解决方案1】:
解决方案
我不一定推荐此解决方案,但您可以创建一个具有在特定时间段之间调用自身的阶段的管道。您可能需要禁用并发执行并将构建声明配置为不等待也不传播错误。
pipeline {
agent any
options {
disableConcurrentBuilds()
}
stages {
stage('output') {
steps {
echo 'I am doing something'
}
}
stage('run again?') {
steps {
script {
/*
* You will need to write the Groovy code for now, start, and end
* Then you can compare the times and build a self calling pipeline
*/
if ( now.after(start.time) && now.before(end.time) ) {
build wait: false, propagate: false, job: "${env.JOB_NAME}"
}
}
}
}
}
}