Django and Travis Continuous Integration

I've recently started using Travis-CI on the WheelCMS code. At first it seemed like a simple task, and it probably is for an individual package with no / hardly any dependencies.

But this his not the case for the avergage Django package, and definately not for my setup, since:

  • I'm using buildout
  • I'm using mr.developer in buildout to fetch some development packages from github
  • I'm using py.test
  • I'm using my own py.test - django integration package
  • I'm using Django with a lot of dependencies.

buildout and mr.developer using git sources is not a very good option, since buildout (or actually git) will (depending on the url used) ask to accept the (github) host identification. This is something that can be worked around by specifying ordinary http-based git remote url's, but the entire approach is wrong anyway: the buildout is meant to bootstrap an entire WheelCMS site, not an individual package.

What is needed is a miminal django configuration that provides just enough setup to test the package. And that's exactly what's described here:

http://datadesk.latimes.com/posts/2012/06/test-your-django-app-with-travisci/

https://github.com/nkuttler/django-webmaster-verification/blob/master/quicktest.py

http://stackoverflow.com/questions/3841725/how-to-launch-tests-for-django-reusable-app

This means each individual package gets a .travis.yml, a quicktest.py (which has a base definition in my twotest package now) and a requirements.txt file listing just those packages that the tested package requires.

The result can be seen in, for example, the wheelcms_axle package and its Travis-CI page.

 

Last updated July 9, 2013, 12:52 p.m. | filed under django | django continuous integration py.test wheelcms travis
comments powered by Disqus