Установка времени ожидания конвейера Jenkins только для группы этапов - PullRequest
1 голос
/ 14 февраля 2020

Я знаю, что можно установить тайм-аут для всего сценария конвейера или определенного этапа c, используя options, но есть ли способ установить тайм-аут для группы этапов? Например, общее время ожидания 10 минут (не 10 минут каждый) только для 3 из 5 этапов, и пусть другие 2 будут работать свободно.

1 Ответ

4 голосов
/ 15 февраля 2020

Конечно, вы можете создавать вложенные этапы и определять параметр 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...