Действие Jenkins Postline Post Действие sshPublisher не работает, когда статус ABORTED - PullRequest
0 голосов
/ 02 октября 2018

В Jenkinsfile почтовый блок always с использованием sshPublisher кажется мне ошибочным.Он не выполняется, если статус сборки ABORTED.

Предположим, у меня есть следующее Jenkinsfile:

pipeline {
    agent any
    environment {
        // setup
    }
    stages {
        stage("Build") {
            // build
        }
        stage("Deploying for review") {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: "foo", transfers: [
                    sshTransfer(execCommand: "docker run --rm -d -p $PORT:443 " +
                        " --name '$PROJECT-$DOCKER_TAG' bar.foo.com/$PROJECT:$DOCKER_TAG")
                ])])
            }
        }
        stage("Review") {
            agent none
            steps {
                input "Deploy to production?"
            }
        }
        stage("Promotion") {
            steps {
                echo "Promotion"
            }
        }
        stage("Deploying to production") {
            steps {
                echo "Deploy to production"
            }
        }
    }
    post {
        always {
            sshPublisher(publishers: [sshPublisherDesc(configName: "foo", transfers: [
                sshTransfer(execCommand: "docker stop '$PROJECT-$DOCKER_TAG')
            ])])
        }
    }
}

Если пользователь прерывает сборку на этапе Reviewбудет сгенерирован следующий вывод, и команда docker stop в блоке post НЕ будет выполнена.

[Pipeline] stage
[Pipeline] { (Review)
[Pipeline] {
[Pipeline] input
Deploy to production?
Proceed or Abort
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Promotion)
Stage "Promotion" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Deploying to production)
Stage "Deploying to production" skipped due to earlier failure(s)
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Declarative: Post Actions)
[Pipeline] step
SSH: Current build result is [ABORTED], not going to run.
[Pipeline] }
[Pipeline] // stage

Во-первых, почему sshPublisher не выполняется, если результат построения равен ABORTED?И если есть веская причина, как я могу заставить ее работать еще?

...