Pour arrêter la poursuite de l'exécution lorsque la commande échoue :
command || exit 0
Pour continuer l'exécution lorsque la commande échoue :
command || true
Jenkins exécute les étapes de construction du shell en utilisant /bin/sh -xe
par défaut. -x
signifie imprimer chaque commande exécutée. -e
signifie quitter avec échec si l'une des commandes du script a échoué.
Donc, je pense que ce qui s'est passé dans votre cas est votre sortie de commande git avec 1, et à cause de la valeur par défaut -e
param, le shell récupère le code de sortie différent de 0, ignore le reste du script et marque l'étape comme un échec. Nous pouvons le confirmer si vous pouvez publier votre script d'étape de construction ici.
Si c'est le cas, vous pouvez essayer de mettre #!/bin/sh
pour que le script soit exécuté sans option ; ou faire un set +e
ou quelque chose de similaire en plus de l'étape de construction pour remplacer ce comportement.
Modifié :Une autre chose à noter est que, si la dernière commande dans votre script shell retourne du code non-0 , toute l'étape de construction sera toujours marquée comme ayant échoué, même avec cette configuration. Dans ce cas, vous pouvez simplement mettre un true
commande à la fin pour éviter cela.
Une autre question connexe
S'il n'y a rien à pousser, git renvoie le statut de sortie 1. L'étape d'exécution de la construction du shell est respectivement marquée comme ayant échoué. Vous pouvez utiliser l'instruction OR || (tuyau double).
git commit -m 'some messasge' || echo 'Commit failed. There is probably nothing to commit.'
Cela signifie, exécutez le deuxième argument si le premier a échoué (état de sortie renvoyé> 0). La deuxième commande renvoie toujours 0. Lorsqu'il n'y a rien à pousser (état de sortie 1 -> exécuter la deuxième commande), echo renverra 0 et l'étape de construction se poursuivra.
Pour marquer la construction comme instable, vous pouvez utiliser l'étape de post-construction Jenkins Text Finder. Il peut passer par la sortie de la console, faire correspondre le modèle (votre écho) et marquer la construction comme instable.