Having set up a CI build for Octave and determined the available packages, the next step was to set up a CI build for the packages.
The packages themselves come from two sources, mercurial and subversion. I didn’t want a proliferation of Jenkins projects, so I set up a single project that polls the subversion code and triggers following the main Octave build. This project also updates the mercurial code when it launches. The frequency of builds this setup generates should be adequate at the moment, but can be reviewed later.
Once the code has been updated the build creates the octave packages, runs a package build, then attempts to install the package.
There are three kinds of issues I’ve encountered using this approach:
- Octave package dependencies
- Dependencies external to Octave
- Incorrect package naming