it-swarm.com.de

Skript wird bei fehlgeschlagenen Nosetests beendet

Ich verwende ein kleines Skript, um den aktuellen Zweig in den Stamm einzufügen und ihn herauszuschieben. Wie kann ich das Skript fehlschlagen lassen, wenn Nosetests fehlschlagen?

#!/bin/bash
git checkout $1
nosetests
git checkout master
git merge $1
git Push
git checkout $1
6
ArekBulski

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

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

Aus help set:

-e Beendet sofort, wenn ein Befehl mit einem Status ungleich Null beendet wird.

7
heemayl

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 || überprüft den Rückkehrcode von nosetests und führt den Befehl exit 1 aus, wenn er nicht 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
3
Thomas