Skip to content

Latest commit

 

History

History
76 lines (59 loc) · 3.23 KB

RELEASE.md

File metadata and controls

76 lines (59 loc) · 3.23 KB

Release procedure for Scap

This is the release procedure for the Scap software. It is meant to be followed by a member of the Release Engineering team.

This document assumes that the codebase has already undergone manual and automated testing.

Production Release

Run release-scripts/perform-release. It will:

  • Ensure that your checkout is up-to-date and clean.
  • Prompt you for for the new version number (with a reasonable default).
  • Update scap/version.py and changelog and create a commit with those changes.
  • Push the commit to Gitlab, approve it, and wait for it to merge.
  • Tag and push the commit.
  • Tell you how to deploy the new release.

That's it!

Production deployment

  • Make sure you select a time window where no deployments are happening
  • On the main deployment server (deployment.eqiad.wmnet at the time of writing), run scap install-world. This will select the latest available version tag for installation and prompt you for confirmation.
  • If you need to roll back, you can specify a particular version tag with e.g. scap install-world --version 4.42.0

Beta Release

(For the following steps to work you must have ssh access to and sudo privileges on deployment-cumin.deployment-prep.eqiad.wmflabs and deployment-deploy03.deployment-prep. eqiad1.wikimedia.cloud)

  1. Run release-scripts/scaps-installed-in-beta. It will print a list of the versions of Scap that are installed on beta hosts. Save this information in case a rollback is needed. Ideally there will just be one version reported but sometimes (read: frequently) situations arise on beta cluster that result in mismatches.

  2. Run release-scripts/update-scap-in-beta. This will retrieve the latest available code revision of Scap, prompt you for confirmation, and (if you answer y or yes) install it on beta Scap hosts.

Test the Scap deployment

  • Run the beta-scap-sync-world Jenkins job (click "Build now") or wait for it to run automatically (runs every ten minutes)

  • If it fails (and it wasn't failing before), it's probably a new bug in scap. Revert back to the previous working version by running release-scripts/update-scap-in-beta OLDVERSION, replacing OLDVERSION with the version saved in earlier steps.

  • Manually run a deployment from deployment-deploy03 (FIXME: This needs to be replaced by pre-release automated testing)

    • ssh deployment-deploy03.deployment-prep.eqiad1.wikimedia.cloud
    • cd /srv/deployment/integration/slave-scripts
    • make a dummy change to README and commit it
    • run: scap version && dpkg -l scap
    • check the version numbers are correct
    • run: scap deploy -v 'testing scap3'
    • run: scap deploy-log
    • kill that with control-C if it looks good
    • output from 'scap deploy' might mention a host like deployment-mediawiki-07.deployment-prep.eqiad.wmflabs; log in there and check that /srv/deployment/integration/slave-scripts-cache has a current symlinked to a refs/... directory and that /srv/deployment/integration/slave-scripts is a symlink to the same revs directory: ls -l /srv/deployment/integration/slave-scripts-cache /srv/deployment/integration/slave-scripts