Я хочу отправлять электронное письмо, когда сборка завершается успешно/не удается, вместе с некоторой полезной информацией Git, такой как SHA фиксации, предыдущий успешный SHA, сообщение фиксации и т. д. Я смог сделать это в старом пользовательском интерфейсе, но теперь я создал декларативный конвейер и теперь я получаю GIT_BRANCH is not supported in this context
в полученном электронном письме. Я использую Дженкинс вер. 2.89.3. Мой сценарий:
pipeline {
agent {
...
}
stages {
stage('Checkout') {
steps {
sh 'printenv'
checkout scm: [$class: 'GitSCM', branches: [[[name: '*/development']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [url: 'https://github.com/myrepo/']]]
sh 'git submodule foreach --recursive \'git submodule sync\''
sh 'git submodule update --init --recursive'
}
}
stage('Build') {
steps {
...
}
}
}
post {
success {
sh 'printenv'
emailext body: '$PROJECT_DEFAULT_CONTENT Commit message: ${FILE, path="commit_message.txt"}\nThis commit: ${GIT_COMMIT}Build URL: ${BUILD_URL}',
recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'CulpritsRecipientProvider'], [$class: 'RequesterRecipientProvider']],
subject: 'Some subject'
}
}
}
printenv
напечатает все, что я ожидаю, включая GIT_COMMIT как на этапе «Оформить заказ», так и после успешного завершения. Поскольку я буду повторно использовать этот сценарий для более чем 10 заданий Jenkins, я хочу избежать добавления ручной работы с пользовательским интерфейсом для передачи параметров и прочего.
Я попытался объявить среду до stages
, но не смог использовать ее из контекста emailext
:
agent {
...
}
environment {
MY_GIT_COMMIT = "${GIT_COMMIT}"
}
stages {
...
}
Любая помощь приветствуется. Заранее спасибо.