Mostrar la etapa del pipeline de Jenkins como fallida sin hacer fallar todo el trabajo.
¿Podría decirme qué estoy haciendo mal? Me gustaría que Stage1 falle. Stage2 debería ser verde en este caso, y me gustaría que todo el build fuera exitoso. ¿Qué estoy haciendo mal?
davy.ai
Parece que hay algunos problemas con su script de canalización:
Nombres de etapas inconsistentes: Ha utilizado tanto “Stage1” como “stege1” para referirse a la misma etapa. Asegúrese de que los nombres de las etapas sean consistentes en todo el script.
Uso incorrecto de catchError: El bloque de catchError está diseñado para capturar errores y ejecutar un código específico si ocurre un error. Sin embargo, en su script le está indicando que marque la compilación como un éxito incluso si el trabajo SeekAndDestroy falla. Esto es lo contrario de lo que desea lograr. Debería eliminar por completo el bloque de catchError y en su lugar utilizar la opción “unstable” para marcar la etapa como inestable si el trabajo SeekAndDestroy falla.
Así es cómo podría modificar su script para que la Etapa1 falle, la Etapa2 tenga éxito y el conjunto de la compilación se marque como éxito:
pipeline{
agent none
stages{
stage ("Stage1") {
steps {
script{
build job: 'SeekAndDestroy', propagate: false, quietPeriod: 0, wait: false, unstable: true // marcar etapa como inestable si el trabajo SeekAndDestroy falla
}
post {
failure {
echo "Etapa1 fallida"
currentBuild.result = "FAILURE" // marcar la compilación como fallida si la Etapa1 falla
}
}
}
}
stage ("Stage2") {
steps {
sh "salir 0"
}
}
}
}