Dal 2017/02/03, Declarative Pipeline Syntax 1.0 può essere utilizzato per ottenere questa funzionalità dopo passaggio di generazione.
È una nuova sintassi per la costruzione di pipeline, che estende Pipeline con una struttura predefinita e alcuni nuovi passaggi che consentono agli utenti di definire agenti, post azioni, impostazioni dell'ambiente, credenziali e fasi.
Ecco un esempio Jenkinsfile con sintassi dichiarativa:
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."
}
}
}
Il postale blocco codice è quello che gestisce tale alberino azione passo
dichiarativa tubazioni Sintassi riferimento è here
punti bonus per 'TimestamperBuildWrapper', non sapevo esistesse –
Ho usato' try {} finally {} 'in un paio di posti nel mio Jenkinsfile e ha funzionato meravigliosamente. Vorrei anche notare che i blocchi try/catch/finally ** non ** devono essere scomposti in una funzione separata o funzione wrapper - funzionano perfettamente ovunque in una pipeline con script. – jayhendren