Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Demo data and seed data: make sure you have demo data that is sufficient to demonstrate the features of this release. Your demo data might be built into the repositories and used in the build process OR be prepared to run a one-time database load script/command.
  • Features are completed for this release and are checked in.
  • All automated tests pass.
  • Release notes and other documentation/publicity is ready for distribution.
  • Release Manager (so named) has certifications for remote UAT environment and a docker client installed on the machine he'll be releasing from.
  • Release Manager has docker hup hub credentials to push tagged images

...

  1. Select a tag name such as '3.0.0-beta' based on the OpenLMIS Releases guidelines in the wiki.
  2. Tag each GitHub repository with that same tag. Do this for each service/repo in the project, including the API services, the AngularJS UI repo, and the Blue distribution.
    1. Do we need a release branch? For the 3.0 Beta release, we do not need a release branch, only a tag. If there are any later fixes we need to apply to the 3.0 Beta, we would issue a new beta release (eg, 3.0 Beta R1) to publish additional, specific fixes.
    2. Do we need a code freeze? We do not need a "code freeze" process. We will add the tag in Git, and everyone can keep committing further work on master as usual. Updates to master will be automatically built and deployed at the Test site (test.openlmis.org), but not the UAT site (uat.openlmis.org).
    3. Confirm that your release tags appear in GitHub.
      1. Look under the Releases tab of each repository, eg https://github.com/OpenLMIS/openlmis-requisition/releases.
  3. Ensure you have checked out (git) locally every repository tagged at the tag you created.  Confirm with "git describe"
  4. Build each service and and publish to docker hub
    1. Build service image locally
      1. ./docker-compose f dockercompose.builder.yml run builder
      1. ./docker-compose f dockercompose.builder.yml build image
      2. Confirm that the Images on your local machine are build
    1. Tag those Images with the tag you defined locally and publish to docker hub
      1. https://docs.docker.com/engine/reference/commandline/push/
      2. Confirm the tag exists on Docker Hub for each image pushed
  5. Checkout openlmis-deployment, update the UAT enviornment's docker-compose file with the right tag
  6. Set your docker connection settings to UAT environment
  7. Remove all running containers from UAT host
  8. Kick of off one (any) of the "deploy to uat" jobs on Jenkins
  9. Load demo data manually into UAT host's postgres container
  10. Navigate to uat.openlmis.org and ensure it works

...