Release Engineering
-
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).
- 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
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.