Я использую небольшой скрипт для слияния текущей ветки с trunk и push-а. Как сделать так, чтобы скрипт не работал, если nosetests не работает?
#!/bin/bash
git checkout $1
nosetests
git checkout master
git merge $1
git push
git checkout $1
решение1
Добавьте set -e
после строки shebang, чтобы скрипт завершал работу в случае сбоя любой из команд:
#!/bin/bash
set -e
git checkout $1
nosetests
От help set
:
-e Немедленно завершить работу, если команда завершается с ненулевым статусом.
решение2
Вы можете попробовать следующее.
#!/bin/bash
git checkout $1
nosetests || exit 1
git checkout master
git merge $1
git push
git checkout $1
Функция ||
проверит код возврата nosetests
и выполнит команду, exit 1
если он не равен нулю.
Другой вариант может быть.
#!/bin/bash
git checkout $1
if ! nosetests
then
exit 1
fi
git checkout master
git merge $1
git push
git checkout $1