Od 2017-02-03, Declarative Pipeline Syntax 1.0 można wykorzystać, aby osiągnąć ten build krok funkcjonalność post.
Jest to nowa składnia do budowy potoków, która rozszerza Pipeline o predefiniowaną strukturę i kilka nowych kroków, które umożliwiają użytkownikom definiowanie agentów, akcji po, ustawień środowiska, referencji i etapów.
Oto przykład Jenkinsfile z deklaratywnej składni:
pipeline {
agent label:'has-docker', dockerfile: true
environment {
GIT_COMMITTER_NAME = "jenkins"
GIT_COMMITTER_EMAIL = "[email protected]"
}
stages {
stage("Build") {
steps {
sh 'mvn clean install -Dmaven.test.failure.ignore=true'
}
}
stage("Archive"){
steps {
archive "*/target/**/*"
junit '*/target/surefire-reports/*.xml'
}
}
}
post {
always {
deleteDir()
}
success {
mail to:"[email protected]", subject:"SUCCESS: ${currentBuild.fullDisplayName}", body: "Yay, we passed."
}
failure {
mail to:"[email protected]", subject:"FAILURE: ${currentBuild.fullDisplayName}", body: "Boo, we failed."
}
}
}
kod pocztowy blok jest co uchwyty, które postu działanie krok
deklaratywna Pipeline Składnia odniesienia jest here
punkty bonusowe dla 'TimestamperBuildWrapper', nie wiedziałem, że istnieje –
Użyłem' try {} finally {} 'w kilku miejscach w moim Jenkinsfile i działało cudownie. Chciałbym również zauważyć, że bloki try/catch/finally ** nie ** muszą być podzielone na osobną funkcję lub funkcję wrappera - działają dobrze wszędzie w skrypcie. – jayhendren