Vorrei sfruttare il plug-in esistente Mailer da Jenkins all'interno di uno Jenkinsfile
che definisce un processo di generazione della pipeline. Dato il seguente semplice script di errore, mi aspetterei un'e-mail su ogni build.Utilizzare Mailer di Jenkins all'interno del flusso di lavoro della pipeline
#!groovy
stage 'Test'
node {
try {
sh 'exit 1'
} finally {
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: '[email protected]', sendToIndividuals: true])
}
}
L'uscita dalla build è:
Started by user xxxxx
[Pipeline] stage (Test)
Entering stage Test
Proceeding
[Pipeline] node
Running on master in /var/lib/jenkins/jobs/rpk-test/workspace
[Pipeline] {
[Pipeline] sh
[workspace] Running shell script
+ exit 1
[Pipeline] step
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE
Come si può vedere, lo fa record che esegue la pipeline step
subito dopo il fallimento, ma nessun email ottenere generato.
Le e-mail in altri lavori in stile libero che sfruttano lo mailer
funzionano correttamente, stanno solo invocando tramite lavori di pipeline.
Questo è in esecuzione con Jenkins 2.2 e mailer 1.17.
C'è un meccanismo diverso con cui dovrei invocare email di build non riuscite? Non ho bisogno di tutto il sovraccarico del passaggio mail
, ho solo bisogno di notifiche su guasti e ripristini.
E 'questo helful? http://stackoverflow.com/questions/36948606/jenkins-notifying-error-by-sending-mail-in-pipeline-former-known-as-workflow –
Molto vicino a quello che stavo cercando di fare, ma si riferisce più a l'uso del plugin di posta dopo un errore. Il pezzo mancante è dettagliato nella risposta di seguito in come lo stato viene impostato durante il processo di pipeline, che è richiesto per i plug-in che utilizzano uno stato di build non in sospeso. – rkeilty