仅为一组阶段设置Jenkins管道超时

时间:2020-02-14 18:41:01

标签: jenkins jenkins-pipeline

我知道可以使用options为整个管道脚本或特定阶段设置超时,但是有没有办法为一组阶段设置超时?例如,在5个阶段中只有3个阶段的总超时时间为10分钟(每个阶段不是10分钟),而其他2个阶段则可以自由运行。

1 个答案:

答案 0 :(得分:4)

当然,您可以创建嵌套阶段并为父阶段定义timeout选项:

pipeline {
    agent any
    stages{
        stage('Stage A') {
            options{
                timeout( time: 10, unit: 'SECONDS' )
            }
            stages {
                stage('Stage A1') {
                    steps { 
                        sleep( time: 4, unit: 'SECONDS' )
                    }
                }
                stage('Stage A2') {
                    steps { 
                        sleep( time: 4, unit: 'SECONDS' )
                    }
                }
                stage('Stage A3') {
                    steps { 
                        sleep( time: 4, unit: 'SECONDS' )
                    }
                }
            }
        }
    }
}

由于父超时,将永远不会执行阶段A3。它将被标记为“中止”:

Jenkins Pipeline