I have built it using @gontrollez hint. ./deploy
script:
reset;
sshpass -p 'pass' ssh dev@IP "./update";
RET=$?;
if [ $RET -eq 0 ];then
sshpass -p 'pass' ssh test@IP "./update";
RET=$?;
if [ $RET -eq 0 ];then
sshpass -p 'pass' ssh prod@IP "./update";
RET=$?;
if [ $RET -eq 0 ];then
reset;
echo "$(tput setaf 2)Success!"
else
echo "$(tput setaf 1)PROD test failed!"
fi
else
echo "$(tput setaf 1)TEST test failed!"
fi
else
echo "$(tput setaf 1)DEV test failed!"
fi
echo "$(tput sgr0)"
./update
script:
current=$(svn info | grep "Revision" | awk '{print $2}');
svn up;
sh tests.sh;
OUT=$?;
if [ $OUT -eq 0 ];then
echo "Update successful!"
else
echo "Test failed! Reverting...";
svn up -r$current;
$(exit 10);
fi
And tests.sh
runs phpunit tests