Creating packages through the new docker based build scripts now work pretty much independent from any local environment, as long as docker is available, e.g. also on Jenkins. Having daily snapshots available for deb/rpm artifacts would enable us to provide users dev-releases for testing and validating fixes.
I've created a branch for the Jenkins integration, which can be found here:
The major issue I'm currently struggling with is the handling of the actual version value. We need to find a way to have Jenkins recognize the correct version for the branch being build. Also we must create $version-SNAPSHOT packages, as builds are not official releases and we should not have any packages for versions that aren't published yet.
The Debian build process will use the version defined in debian/changelog. Adding a -SNAPSHOT suffix for the version should work, but this has to be handled manually and care must be taken to change the value back again for a regular release.
With RPMs, the version must be set for cassandra.spec, which is currently done by running
, where the version is passed as a parameter by build-scripts/cassandra-rpm-packaging.sh. Maybe we could grep the version from build.xml here?
So I wonder if there any way we can keep track of the version in a single place, such as build.xml or CHANGES. Afterwards we also need to enable a SNAPSHOT mode, maybe by setting a Jenkins environment value.
/cc Michael Shuler