Skip to content
shaunxp20 edited this page Apr 22, 2021 · 1 revision

This is intended to be an up-to-date reference for our deployment procedures.

Quick reference

A deployment typically follows this pattern:

  1. Look at a diff of what's going to be deployed, scan for correctness and extra steps needed
  2. Do any pre-deployment steps (like setting up configuration settings in Heroku)
  3. git checkout qa
  4. git pull
  5. heroku pg:backups capture DATABASE_URL -a technovation
  6. bundle exec rails release [major|minor|patch]
  7. Wait for CircleCI
  8. Do any final post-deployment steps
  9. Update ZenHub - move tickets to the "Done" column

Details

The release task

The release [major|minor|patch] task does a bunch of stuff, but it's handy for updating and pushing both qa and production to CI. The production branch on CI will deploy to production on success. Choose which type of release you're doing with these guidelines:

  • A patch release for bug fixes and small updates in between new features
  • A minor release for entirely new features
  • A major release on the last release before opening registration every season

Config changes or actions

Make sure any new config (in Heroku) is set if that wasn't done beforehand, old config gets removed where appropriate, jobs get scheduled, etc. These things are easy to forget and not captured in an automated way right now, so take care with them.