For this repository, the deploy pipeline follows these steps:
- a new working branch is made off
develop
, - when ready, the developer then creates a PR for a merge of their working branch back into the
develop
branch, this triggers a build/verification for all apps/services in Travis, - Travis finally reports its build status to Slack,
- the developer then selects the apps/services to deploy using Slack, triggering an AWS CodeBuild process to build containers and deploy to AWS-ECS. CodeBuild internally updates branches
develop/service-name
andproduction/service-name
as needed, (Note to Phill - not sure how deploys to staging cluster and production cluster are differentiated ...) - the developer commits the merge for the PR (for the branch to
develop
).
After an app/service is deployed to production, verified and the PR committed, the lead developer must tag and release the felevant production/service-name
branch/es so that the Project Manager/s can complete their Release Notes.
- goto the release section of the repository,
- note the last release number for the app/service, (format service-name:vYYYY.n where YYYY is the year and n is an incrementing integer)
- click the "Draft a New Release" button
- click on "Choose a Tag" and create a new tag (which follows the release numbering pattern service-name:vYYYY.n)
- ensure the Target is the correct
production/service-name
branch - give the release a title. This will be the same as the tag in step 4 above.
- in the Description, copy and paste in the template below, then click the
Generate release notes
button to append the commits to be bottom of the textbox. Update the "Jira Tickets` section with all tickets that have been addressed in this release. - click "Set as the latest release",
- click the
Save draft
button.
The Project Manager will edit the draft release notes, finalize and publish them.
- goto the release section of the repository,
- edit the draft release,
- update the [PM to complete] block with narrative related to the release,
- click "Set as the latest release",
- click the
Publish release
button.
A Github action will now fire which will post a message to the slack #jira-releases channel.
## [Copy title of production PR]
### Release Notes
[PM to complete]
### Related Jira tickets
[Add a list of Jira Tickets addressed in this Release, with links to the Jira website]
example: Dig-1839 - [Update residential exemption application in Assessing Online](https://bostondoit.atlassian.net/browse/DIG-1839)
- In Jira create a release with the following convention RepositoryName/release version (e.g. digital/service-name:v2023.2)
- The release description should include what was updated and a link to the release notes (e.g. service-name code updates Release Notes)
- Attached release fix version to tickets before releasing the tickets.