This post originated from an RSS feed registered with Agile Buzz
by Travis Swicegood.
Original Post: Travis and Python
Feed Title: Travis Swicegood
Feed URL: http://travisswicegood.com/atom/
Feed Description: Posts on Git from Travis Swicegood, author of Pragmatic Version Control using Git.
Today I took my name back and got Armstrong tests running on Travis CI.
Travis CI is the distributed, community run continuous integration server
that the Ruby community has put together. It lets you do all manner of fun
things, like testing in dozens of different Ruby version configurations.
You’re probably wondering what Armstrong is doing there with all of this
talk of Ruby. No, I didn’t rewrite Armstrong in Rails last night. No, I
didn’t convert all of our fabfiles over to Rakefiles either. Instead, I
subverted it from within.
Travis CI uses a .travis.yml file for all of its configuration. There are
two key fields that it gives you that let you do fun things with it:
before_scripts and scripts.
before_scripts runs before anything starts. It’s like setup in the xUnit
world, but for your whole environment. Each of the Armstrong components ships
a requirements/dev.txt file, so I tell Travis to do a pip install -r of
that during setup. That’s right, Travis CI has pip installed!
Next, I’ve set the script to use our test runner, fab test and we’re set.
I had to add a few environment variables to turn off our coverage
reports—they don’t provide much value when there’s no one there to view
them—and we don’t need to do a re-install like we do on a local environment.
You can see this in action by checking out the current build status for the
armstrong.core.arm_wells component here. Here’s the .travis.yml
file’s contents:
There’s work happening to bring native Python support. Native support means
being able to test against multiple versions and such. Be sure to check out
the #travis channel on Freenode if you’re interested in helping out.