Скрипт завершает работу при неудачных тестах nose

Скрипт завершает работу при неудачных тестах nose

Я использую небольшой скрипт для слияния текущей ветки с 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

Связанный контент