SCAPE/OPF Continuous Integration update

SCAPE/OPF Continuous Integration update

As previously blogged about by Carl we now have virtually all SCAPE and OPF projects in Continuous Integration; building and unit testing in both Travis CI and Jenkins

  • Travis compiles the projects and executes unit tests whenever a new commit is pushed to Github, or when a pull request is submitted to the project. 
  • Jenkins builds are generally scheduled once per day.  After a build the software has its code quality analysed by Sonar

Complete details of how to build each non-Java project are contained within the .travis.yml files that are found in the project directories.  As a side effect of this work the .travis.yml files can be used as instructions for independently building the projects.

Matchbox, Xcorrsound and Jpylyzer have CI builds that are capable of generating an installable Debian package, which we are aiming to publish.  Java projects have had their Maven GroupId and package names changed to the appropriate SCAPE names so we can publish binary snapshots.

The daily Maven snapshots of code built in Jenkins are now (or soon will be) published to https://oss.sonatype.org/content/repositories/snapshots/eu/scape-project/ and can be used by adding this repository to your pom.xml:

<parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
</parent>

What you can do for your project

  1. Maintain your .travis.yml file if project dependencies change
  2. Ensure code matches the SCAPE/OPF functional review criteria – correct Java package names and Maven GroupIds are essential to be able to publish snapshots
  3. Ensure your project has an up to date README that contains details of how to build and run your software (including dependencies)
  4. Very importantly ensure that your project has (at the very least) a top level LICENSE, ideally  source files should each contain a license header
  5. Add unit tests for your project
  6. Ensure that unit tests for your project can easily be run using standard dependencies. Relying on your particular installation for unit tests to pass means that they cannot be successfully run by Travis/Jenkins and show as test failures.  Whilst it might not always be possible to have unit tests that can be run independently, if there have to be test dependencies then please document how these should be set up!
  7. Check your project at http://projects.opf-labs.org/

The CI days are generally about once a month.  If you are interested in joining us do let us know as we could always do with more help.  It’s an opportunity for you to work on CI with Travis/Jenkins, and do other work that is interesting (and rewarding), such as Debian packaging, that you might not normally get to work on.

Leave a Reply

Join the conversation