web-dev-qa-db-fra.com

Est-ce que la construction manuelle échoue dans Jenkins en utilisant le script Shell

Je voudrais marquer une build Jenkins pour échouer sur un scénario par exemple:

if [ -f "$file" ]
then
    echo "$file found."
else
    echo "$file not found."
    #Do Jenkins Build Fail
fi

Est-ce possible via Shell Script?

Réponse: Si nous quittons avec un entier 1, la construction Jenkins sera marquée comme ayant échoué. J'ai donc remplacé le commentaire par exit 1 pour résoudre ce problème.

47

Il vous suffit de quitter la sortie 1.

if [ -f "$file" ]
then
    echo "$file found."
else
    echo "$file not found."
    exit 1
fi
72
alk3ovation

Pour échouer une génération Jenkins à partir de .NET, vous pouvez utiliser Environment.Exit(1).

Voir aussi Comment spécifier le code de sortie d'une application console dans .NET? .

3
Ben

Pour échouer une génération Jenkins à partir de Windows PowerShell, vous pouvez utiliser l'astuce de Steve pour C # comme suit:

$theReturnCode = 1
[System.Environment]::Exit( $theReturnCode )

Remarques;

1.Windows recycle les codes de sortie supérieurs à 65535. ( https://stackoverflow.com/a/31881959/24211 )

2.L'API Jenkins REST a une commande '/ stop', mais cela annulera la construction au lieu de l'échouer. ( https://jenkinsapi.readthedocs.org/ fr/latest/build.html )

3.Jenkins peut également marquer une version comme instable, et ce message ( https://stackoverflow.com/a/8822743/24211 ) contient des détails sur cette solution.

2
AnneTheAgile