layout | title | permalink | weight | parent | subnav | |||
---|---|---|---|---|---|---|---|---|
page |
Release Management |
/release-management/ |
7 |
General |
|
A release to the dev (integration) environment can/should occur multiple times per sprint at regular intervals for the team to test merged code against current production database and files. Review the projspace/minnal manual for understanding how to deploy releases across various instances.
Development Release Steps
- Backup the development database
- Copy the production database to dev
- Copy the production files to dev
- Deploy branch to projspace cloud branch running in dev environment.
- Run drush and post-deployment updates on dev environment.
- Test.
A release to the staging (QA) environment should occur once or more per sprint at regular scheduled times with the client for the client to test tickets that have passed internal QA processes.
Staging Release Steps
- Days before release
- Schedule staging release timing with
client
.
- Schedule staging release timing with
- Stage Release
- Backup the staging database
- Copy the production database to staging
- Copy the production files to staging
- Deploy relevant branch to the staging environment.
- Run drush and post-deployment updates on staging environment.
- Test tickets
- Transition deployed tickets that pass internal QA to RESOLVED state (must be In Progress first) and assign to Project Manager
- Cut a tag from staging for future production deployment
- Create a tag based on the staged projspace branch. Tags follow the format v[major].[minor].[release] and should be consistent with releases in the Deployment Notes:
- [major] - This is the major release number. It stays at 0 during development and will be incremented to 1 once the site goes live. This should only increase when a major change to the site is released.
- [minor] - This number represents the current sprint. It is not 1:1 in its number, but only increases once a new sprint cycle is being worked on.
- [release] - This number represents the current release for the current [minor] (sprint) release. Unless the current sprint is a long one, this number will most likely never exceed .10.
- Publish the tag to projspace cloud repo but do not switch any environments to this tag
- Create a tag based on the staged projspace branch. Tags follow the format v[major].[minor].[release] and should be consistent with releases in the Deployment Notes:
- Update Deployment Notes document
- Move the current red release to orange
- Create a new placeholder incremented red release
- Post-release Communication
- Prepare deployment summary message (an email with link to more details in a news post). Curamine news post should contain:
- Version number being deployed
- List of tickets being addressed
- Any related information or steps needed to be taken post-deployment.
- Prepare deployment summary message (an email with link to more details in a news post). Curamine news post should contain:
A release to the production content editing environment should occur only when the client has approved a staging release ready for production and all tickets contained in the release have passed through client QA team and are approved.
Production Release Steps
- Hours before release
- Schedule release timing with
client
- Get approval to ship out changes
- Schedule release timing with
- Production release
- Backup the production database
- Switch production to the appropriate approved tag
- Wait for tag to deploy to all production server
- Run updates as mentioned in the deployment notes
- Test
- Update Deployment Notes document
- Move the relevant orange release(s) to green
- Post-release Communication
- Prepare deployment summary news post:
- Version number being deployed
- List of tickets being addressed
- Any related information or steps needed to be taken post-deployment.
- Prepare deployment summary news post: