Script que sale en pruebas nasales fallidas

Script que sale en pruebas nasales fallidas

Estoy usando un pequeño script para fusionar la rama actual en el tronco y expulsarla. ¿Cómo puedo hacer que el script falle si falla nosetests?

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

Respuesta1

Agregue set -edespués de la línea shebang para que el script salga si alguno de los comandos falla:

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

De help set:

-e Salir inmediatamente si un comando sale con un estado distinto de cero.

Respuesta2

Podrías intentar lo siguiente.

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

Verificará ||el código de retorno nosetestsy ejecutará el comando exit 1si no es cero.

Otra variante podría ser.

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

información relacionada