Skip to content

ReleaseProcedure

Rob Nagler edited this page Oct 25, 2022 · 33 revisions

How To Release

We deploy all applications in containers.

Sirepo Releases

There is always an outstanding Alpha Release [pending] issue. This issue is updated automatically with new commits by update.sh, which uses pykern.pkcli.github.issue_update_alpha_pending). Checks are in place to verify that the commits have all passed CI (see ci_check).

When a release is starts (below), the pending moves to a timestamped issue title using pykern.pkcli.github. Past alpha releases are aggregated into beta release issues, which are further aggregated into production release issues.

Past releases can be found by searching on:

Sirepo Schedule

Sirepo is released regularly as follows:

  • On Monday 10:00 MDT beta is promoted and pushed to prod.
  • On Monday 16:00 MDT master is built and pushed to alpha.
  • On Wednesday 10:00 MDT alpha is promoted and pushed to beta.

When there are bugs, we'll try to fix them within the week. If we can't get a stable beta release by Friday, we won't push it to production, and it will have to wait a week.

When there are bugs in production after a Monday push, we'll address them immediately during the day on Monday when the developers are fresh.

If Monday is a holiday, the schedule shifts by a day, but otherwise stays the same.

Sirepo Procedure

The following creates or promotes a release of the radiasoft/sirepo, radiasoft/beamsim-jupyter, and radiasoft/juptyerhub Docker images. In addition, radiasoft/beamsim image is promoted, but creation of alpha is manual.

  1. Run one of the following:
  • bash update.sh alpha sirepo
  • bash update.sh beta sirepo
  • bash update.sh prod sirepo
  1. Test services are functioning properly
  2. Run one of the following on cori:
  • radia_run nersc-sirepo-update alpha
  • radia_run nersc-sirepo-update beta
  • radia_run nersc-sirepo-update prod
  1. Close Issue

Bivio apps

Provide the list of apps and/or Bivio and/or bivio-perl to update.sh, e.g. to update Bivio and Societas simultaneously:

bash update.sh alpha Societas Bivio

Works the same for alpha, beta, and prod.

Build Codes & Images

Build codes:

bash build-code.sh srw

Images are built on bkf1 (except owncloud, see above):

bash build-docker.sh beamsim

This will tag the image with a version and also alpha, dev, and latest. You build other images similarly.

Sirepo

Alpha runs fully on bkf6. Update the Sirepo service configuration:

bash rsc.sh alpha sirepo

Beta runs on bkf5 and one backend node:

bash rsc.sh beta sirepo

Debugging Startup Failure

If there are no celery workers running after restart check the logs:

journalctl -u sirepo -S -2m
journalctl -t sirepo -S -2m

You need to look at both -u (--unit=UNIT) and -t (--identifier=SYSLOG_IDENTIFIER), because the SyslogIdentifier is systemd for standard output and error.

Clone this wiki locally