Skip to content

Release Engineering

Hagit Segev edited this page Oct 23, 2018 · 43 revisions

Preparing for a release

  1. 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)

  2. Build packages for these commit IDs.

  3. If all packages are fine, these commit IDs are turned into git release tags.

  4. If something has to be fixed in the release, we restart from (1).

Creating a release

Create a new branch in scylla-pkg

  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...)
  2. pull scylla,scylla-jmx,scylla-tools-java,scylla-dtest,cassandra-unit-tests,scylla-ccm repos according to this branch
  3. 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

  1. longevity-test
  2. ami-test
  3. ami
  4. python-driver-matrix-test
  5. centos-rpm-test
  6. centos7.3-rpm-test
  7. ubuntu-deb-test
  8. ubuntu-deb-16.04-test
  9. debian8-deb-test
  10. build
  11. centos-rpm
  12. ubuntu-deb
  13. ubuntu-deb-16.04
  14. dtest
  15. unittests
  16. debian-deb-8
  17. pkg
  18. daily - This build will run all. Run it to check everything.
Clone this wiki locally