Script saindo em testes de nariz com falha

Script saindo em testes de nariz com falha

Estou usando um pequeno script para mesclar o branch atual no tronco e empurrá-lo para fora. Como posso fazer o script falhar se o nosetests falhar?

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

Responder1

Adicione set -eapós a linha shebang para fazer o script sair se algum comando falhar:

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

De help set:

-e Sai imediatamente se um comando sair com um status diferente de zero.

Responder2

Você poderia tentar o seguinte.

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

O ||irá verificar o código de retorno nosetestse executará o comando exit 1se for diferente de zero.

Outra variante poderia ser.

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

informação relacionada