Skript wird bei fehlgeschlagenen Nasentests beendet

Skript wird bei fehlgeschlagenen Nasentests beendet

Ich verwende ein kleines Skript, um den aktuellen Zweig mit dem Stamm zu verschmelzen und ihn herauszuschieben. Wie kann ich dafür sorgen, dass das Skript fehlschlägt, wenn Nosetests fehlschlagen?

#!/bin/bash
git checkout $1
nosetests
git checkout master
git merge $1
git push
git checkout $1

Antwort1

Fügen Sie set -enach der Shebang-Zeile Folgendes hinzu, damit das Skript beendet wird, wenn einer der Befehle fehlschlägt:

#!/bin/bash
set -e
git checkout $1
nosetests

Aus help set:

-e Sofortiges Beenden, wenn ein Befehl mit einem Status ungleich Null beendet wird.

Antwort2

Sie könnten Folgendes versuchen.

#!/bin/bash
git checkout $1
nosetests || exit 1
git checkout master
git merge $1
git push
git checkout $1

||Der Rückgabecode wird geprüft und nosetestsder Befehl wird ausgeführt, exit 1wenn er ungleich Null ist.

Eine andere Variante könnte sein.

#!/bin/bash
git checkout $1
if ! nosetests
then
    exit 1
fi
git checkout master
git merge $1
git push
git checkout $1

verwandte Informationen