Декларативный синтаксис Jenkinsfile для условного шага после сборки - PullRequest
0 голосов
/ 31 октября 2018

У меня есть Jenkinsfile для многоотраслевого конвейера, подобного этому:

pipeline {
    agent any
    stages {
        // ...
    }
    post { 
        failure { 
            mail to: 'team@example.com',
                 subject: "Failed Pipeline: ${currentBuild.fullDisplayName}",
                 body: "Something is wrong with ${env.BUILD_URL}"
        }
    }
}

Я хочу отправлять электронную почту только для сбоев в основной ветке. Есть ли способ сделать шаг почты условным? На основании документации директива when может использоваться только внутри stage.

1 Ответ

0 голосов
/ 31 октября 2018

, как вы заметили , когда работает только внутри стадии . И только действительные step s могут быть использованы внутри post условий . Вы все еще можете использовать скриптовый синтаксис внутри блока script , а блоки script являются действительными step . Таким образом, вы должны иметь возможность использовать if внутри блока script для получения желаемого поведения.

...
  post {
    failure {
      script {
        if (env.BRANCH_NAME == 'master') {
          ... # your code here
        }
      }
    }
  }
}

см. JENKINS-52689

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