30
Jan
5
Continuous Integration on Python
Hudson and Cruise Control are very popular among Java/.Net developers but when it comes to Python, ...
Hudson also seems to work on python!. Open source tools for Python continuous integration:
However, I just want a simple way to check out the code and run the tests. A Bash script and the Cron daemon is a good solution so far (last script update on Wed 25 Feb 2008):
cd /root/siga/src export DJANGO_SETTINGS_MODULE="settings" export PYTHONPATH=":/root/siga/src" mailTo="developer1@sample.com, developer2@whatever.com" analize_tests_output () { grep "FAIL:" $1 > failResults if [[ $? == 0 ]] then echo "There are tests failing!:" > tmp cat failResults >> tmp mail -s "Continuous integration report" $mailTo < tmp fi grep "ERROR:" $1 > errorResults if [[ $? == 0 ]] then echo "There are tests with errors!:" > tmp cat failResults >> tmp mail -s "Continuous integration report" $mailTo < tmp return fi rm -rf $1 } are_there_changes() { svn up > tmpsvnup grep "^U" tmpsvnup 2> /dev/null > /dev/null if [[ $? == 0 ]] then return 1 fi grep "^A" tmpsvnup 2> /dev/null > /dev/null if [[ $? == 0 ]] then return 1 fi grep "^D" tmpsvnup 2> /dev/null > /dev/null if [[ $? == 0 ]] then return 1 fi grep "^G" tmpsvnup 2> /dev/null > /dev/null if [[ $? == 0 ]] then return 1 fi return 0 } are_there_changes changes=$? if [[ $changes == 1 ]] # there are svn changes then /etc/init.d/wservices stop sleep 2 /etc/init.d/wservices start # running unittests tests and mocker tests python tests/runTests.py >> tmptest1 2>> tmptest1 analize_tests_output tmptest1 # runnin django tests python manage.py test core 2>> tmptest2 >> tmptest2 analize_tests_output tmptest2 fi
The cron file:
# m h dom mon dow command 49 * * * * root /root/siga/src/integrator.sh
Enjoyed reading this post?
Subscribe to the RSS feed and have all new posts delivered straight to you.
Subscribe to the RSS feed and have all new posts delivered straight to you.
-
Dreur
-
http://www.belweder.velvet.beskidy.pl/ Hermiona
-
Kris

