Release Engineering - scylladb/scylladb GitHub Wiki
Preparing for a release
-
For a release, pick explicit git commit IDs for all three repositories: https://github.com/scylladb/scylla, https://github.com/scylladb/scylla-jmx, and https://github.com/scylladb/scylla-tools-java)
-
Build packages for these commit IDs.
-
If all packages are fine, these commit IDs are turned into git release tags.
-
If something has to be fixed in the release, we restart from (1).
Creating a release
Create a new branch in scylla-pkg
- verify that all the following repos have a branch: scylla,scylla-jmx,scylla-tools-java,scylla-dtest,cassandra-unit-tests,scylla-ccm (if not branch of master - given that the tests passed...)
- pull scylla,scylla-jmx,scylla-tools-java,scylla-dtest,cassandra-unit-tests,scylla-ccm repos according to this branch
- commit to scylla-pkg all the repos (that are submodules of scylla-pkg)
** We are currently missing branches for scylla-artifacts-tests, scylla-cluster-tests - need to add those as well **
If a branch already exists then you need to checkout the branch in scylla-pkg and then for each submodule (scylla,scylla-jmx,scylla-tools-java,scylla-dtest,cassandra-unit-tests,scylla-ccm) pull the changes as well and then commit the update for the submodules
Create Jenkins jobs for a release
Copy the last release's folder (started on 2.3) with all jobs in it. I,m currently working to set master as a base. Define a parameter for version (2.3) and dash-version (2-3) on folder level for all builds. Posted a question about the folder property (Can't use it for SCM branch). https://wiki.jenkins.io/display/JENKINS/Folder+Properties+Plugin?showComments=true
search for the last release string (example 2.3 2-3) and replace it with the new one (3.0 3-0). There should be only few places to change.
The jobs are
- longevity-test
- ami-test
- ami
- python-driver-matrix-test
- centos-rpm-test
- centos7.3-rpm-test
- ubuntu-deb-test
- ubuntu-deb-16.04-test
- debian8-deb-test
- build
- centos-rpm
- ubuntu-deb
- ubuntu-deb-16.04
- dtest
- unittests
- debian-deb-8
- pkg
- daily - This build will run all. Run it to check everything.