Ich versuche folgendes zu erreichen:Jenkins: Run Serenity Abnahmeprüfungen ohne Fehler
- Führen Sie einen Satz von Serenity (plus Gurke) Tests als Teil eines Build-Pipeline
- die Berichte sammeln, unabhängig davon, ob alle Tests erfolgreich waren oder nicht (sie sind besonders hilfreich bei Fehlern)
- Nur im Falle von Testfehlern per E-Mail die Mitwirkenden
- Nie den Build aufgrund eines fehlgeschlagenen Akzeptanztests fehlschlagen, da diese Pipeline für das Commit ist CI. Will nur scheitern, wenn es in der Nightly gebrochene Abnahmetests gibt.
Also mit, dass alle im Auge ich versuche, den Weg den Build zu konfigurieren:
stage ('Serenity') {
steps {
// For the Delivery CI build don't fail on regression failure
sh 'mvn clean verify -pl regression -DskipCuke=false'
}
post {
always {
publishHTML([allowMissing: true, alwaysLinkToLastBuild: true,
keepAll: true, reportDir: 'regression/target/site/serenity',
reportFiles: 'index.html', reportName: 'Serenity',
reportTitles: ''])
}
failure{
echo 'There are regression suite failures.'
script {
currentBuild.result = 'SUCCESS'
}
emailext attachLog: true, body: 'Find Attached',
compressLog: true, recipientProviders: [[$class:
'CulpritsRecipientProvider']], subject: 'Broken Regression Tests',
to: '[email protected]'
}
}
}
aber es funktioniert nicht, da ich nicht den Wert von currentBuild.result
auf ‚Erfolg‘ zurücksetzen. Also könnte ich alle || true
zum mvn
Befehl, aber das würde bedeuten, dass ich über die gebrochenen Regressionstests keine E-Mails schreiben kann.
Also ich frage mich, ob jemand anderes ihre geschickt auf eine clevere Weise damit umgegangen ist. Muss ich einen Exit-Code oder etwas anderes zuweisen, und würde das die Überschreibung der Standard-Shell-Parameter in Jenkins beinhalten?
Jede Hilfe sehr geschätzt.