Дженкинс многократные постовые секции за стадию - PullRequest
0 голосов
/ 26 января 2020

У меня есть два вопроса об использовании почтового раздела в конвейере Jenkins

1.Можно ли использовать несколько почтовых разделов на этап в декларативном конвейере Jenkins?

2.Можно ли запустить sh команда в почтовом разделе?

pipeline{
    stages{
        stage("....") {
            steps { 
               script {
                ....
            }
        }
        post {
          failure{
               sh "....."
            }
        }
        stage("Second stage") {
            when {
                expression { /*condition */ }
            }
            steps {
                script{

                ....
            }
            post {
                always {
                    script {
                        sh "..."
                    }
                }
            }
        }
     }

1 Ответ

2 голосов
/ 26 января 2020

Вы можете найти информацию в https://jenkins.io/doc/book/pipeline/syntax/#post

pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'
            }
        }
    }
    post { 
        success { 
            sh label: 'success', script: 'ls'
        }
        failure { 
            sh label: 'failure', script: 'ls'
        }
        aborted { 
            sh label: 'aborted', script: 'ls'
        }
    }
}

Вы можете использовать Post шагов каждый Stage, но конвейер остановится при первом сбое. В приведенном ниже примере, если Stage 1 fail Stage 2, будет пропущено. Post после того, как все этапы будут выполняться всегда.

pipeline{
    stages{
        stage("Stage 1") {
            steps {
                catchError(message: 'catch failure') { 
                    script {
                        sh "echo stage 1"
                    }
                }
            }
            post {
              always {
                    sh "echo post stage 1"
                }
            }
        }
        stage("Stage 2") {
            when {
                expression { /*condition */ }
            }
            steps {
                script{
                    sh "echo stage 2"
                }
            }
            post {
                always {
                    script {
                        sh "echo post stage 2"
                    }
                }
            }
        }
    }
    post {
        always {
            sh "echo post after all stages"
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...