我将 Jenkins 用于 OnCommit 和 Nightly Builds。我的构建触发器例如在周末:
H/25 * * * 0,6
或周一至周五:
H/25 0-5 * * *
每晚构建每 25 分钟运行一次。
但这样我就不能有效地利用时间,如果构建长度发生变化,我总是必须调整它。
例如,如何使构建从晚上 8 点到早上 6 点永久运行。一旦第一个构建完成,下一个应该开始。然后在早上 6 点,最后一次构建开始。
我将 Jenkins 用于 OnCommit 和 Nightly Builds。我的构建触发器例如在周末:
H/25 * * * 0,6
或周一至周五:
H/25 0-5 * * *
每晚构建每 25 分钟运行一次。
但这样我就不能有效地利用时间,如果构建长度发生变化,我总是必须调整它。
例如,如何使构建从晚上 8 点到早上 6 点永久运行。一旦第一个构建完成,下一个应该开始。然后在早上 6 点,最后一次构建开始。
我不一定推荐此解决方案,但您可以创建一个具有在特定时间之间调用自身的阶段的管道。您可能需要禁用并发执行并将构建声明配置为不等待也不传播错误。
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}"
}
}
}
}
}
}