Поскольку круиз-контроль полон ошибок, которые потратили впустую всю мою неделю, я решил, что имеющиеся у меня сценарии оболочки проще и, следовательно, лучше.
Вот что у меня есть
svn update /var/www/k12/
#svn log --revision "HEAD" /var/www/code/ | head -2 | tail -1 | awk '{print $1}' > /var/www/path/version.txt
# upload the files
rsync -ar --verbose --stats --progress --delete --exclude=*.svn /var/www/code/ example.com:/home/path
# bring database up to date
ssh example.com 'php /path/tasks/dbrefactor.php'
# notify me
ssh example.com 'php /path/tasks/build.php'
Единственное, на днях я изменил пути и забыл обновить вызов rsync. В результате шаг «уведомить меня» выполнялся несколько раз, пока я разбирался с вещами.
Я знаю, что в Linux вы можете сделать command1 && command2
, и если команда 1 "не удалась", команда2 не запустится, но как мне наблюдать коды выхода "сбой / успех" в целях отладки. Некоторые из сценариев я написал сам, и я уверен, что мне нужно будет сделать что-то особенное.