mitodl/handbook

Describe continuous integration deployment process

pdpinch opened this issue · 1 comments

When is CI used as opposed to RC?

quick draft:

As much as possible, we try to use a common continuous integration (CI) process across all our projects.

When PRs are merged, they are merged into master.

For projects with web applications on Heroku, any merge into master triggers a deployment to the CI server. This means that the CI server is always the most recent version of the project, and any deployment issues will be readily apparent.

When a release is created (see the Release process), the release-candidate branch is updated.

For projects with web applications on Heroku, any merge into release-candidate triggers a deployment to the RC server. If the project is using the Doof bot to manage release, Doof will send a notification in Slack when the release candidate is deployed.

We use the RC server to review release candidates and validate changes before they are released. The RC server can also be useful for project demos, since it is only updated when the release master initiates an update.