0

我将 Jenkins 用于 OnCommit 和 Nightly Builds。我的构建触发器例如在周末:

H/25 * * * 0,6

或周一至周五:

H/25 0-5 * * *

每晚构建每 25 分钟运行一次。

但这样我就不能有效地利用时间,如果构建长度发生变化,我总是必须调整它。

例如,如何使构建从晚上 8 点到早上 6 点永久运行。一旦第一个构建完成,下一个应该开始。然后在早上 6 点,最后一次构建开始。

4

1 回答 1

0

解决方案

我不一定推荐此解决方案,但您可以创建一个具有在特定时间之间调用自身的阶段的管道。您可能需要禁用并发执行并将构建声明配置为不等待也不传播错误。

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}"
                    }

                }
            }
        }
    }
}
于 2021-08-22T02:01:06.533 回答