Continuous Integration

Thomas Robitaille edited this page Feb 4, 2014 · 9 revisions
Clone this wiki locally

We have a continuous integration server set up in a Jenkins instance hosted by Shining Panda.

Jenkins Dashboard

We are also using Travis:

astropy on Travis

This server also produces built documentation here:

Latest Astropy Documentation

Code coverage reports are produced with each revision here:

Latest code coverage report

@mdboom and @astrofrog have accounts on Shining Panda.

Configurations

Debian

Shining Panda itself is testing for Debian Squeeze with the following combinations:

  • py2.6/numpy1.4, py2.6/numpy1.5, py2.6/numpy1.6
  • py2.7/numpy1.4, py2.7/numpy1.5, py2.7/numpy1.6, py2.7/numpy-git-master
  • py3.1/numpy1.6
  • py3.2/numpy1.6, py3.2/numpy-git-master

MacOS X

@astrofrog is running a Jenkins instance on MacOS 10.7, and the builds are being pushed to the Shining Panda Jenkins instance. Astropy is being tested against Python 2.6, 2.7, 3.1, and 3.1 with Numpy 1.4.1 through 1.6.2 The Jenkins instance should also be set up to send out email notifications to people that break builds. It is possible to filter just the MacOS 10.7 builds with this view:

https://jenkins.shiningpanda.com/astropy/view/MacOS%20X/

Note: Builds take ~30 minutes to complete and publish.

Windows XP

@iguananaut has Windows XP builds that are published to Shining Panda.

Staging Branches

In addition to building the upstream master, the Jenkins instances are also testing the 'staging' branch of various users' Astropy fork. The purpose of this branch is specifically to be able to run tests on a particular branch (e.g. before/during a pull request) without having to reconfigure the Jenkins instances to test different branches. If you have a feature you are developing on a branch, then you can run the extensive tests by pushing your branch to the remote staging branch:

git push -f origin local_branch:staging

where local_branch is the name of your branch. At the moment, the Jenkins instances are only set up to tests the staging branches for @astrofrog, @eteq, @iguananaut, @mdboom, and @taldcroft, but we can add more users as needed.

The MacOS 10.7 builds are set to check for updates in the staging branches every 10 minutes, so users should expect a ~30 minute delay between pushing to the staging branch, and seeing the published test results. For Debian, the builds have to be initiated manually at this time. If you push to a staging branch, and want to run the tests on Debian, ask @astrofrog or @mdboom.