Continuous integration with Hudson (moved)

From OpenHatch wiki

This is a page about improving or modifying OpenHatch.

We call that "Hacking OpenHatch," and there is a whole category of pages about that.


Overview

The OpenHatch code has a suite of tests. It's important that when we deploy the code to the website, the tests all pass.

Hudson is a "continuous integration" tool (read more on Wikipedia). It wakes up once an hour, checks the git repository for new commits, and runs the test suite.

Specifics of the OpenHatch setup

Configuration

There are three "projects" in Hudson. Different ones run different suites of tests in the OpenHatch codebase. They include or exclude different Django apps from the OpenHatch codebase.

  • Test the "customs" app
    • The tests for the customs app often go out to the network and can break if the remote servers change their APIs.
  • Test the "search" app
    • The search tests can take a while to run, so we separate them out.
  • Test all apps except customs and search
    • This is the catchall that tests the rest of the code.

How to see the list of tests that failed or passed

Permissions

Right now, only Raffi and Asheesh can modify the configuration of Hudson.

Anyone can enqueue a run of the test suite by clicking the

Future work

It would be nice if Hudson notified us on IRC when we "break the build" (introduce changes that break tests). Bug filed.

It would be super nice if, whenever there was a commit to Gitorious master that passed all the tests, Hudson automatically deployed it.