- Find a ticket from the top of
To Do
column on Active Development (Kanban board) - Assign it to yourself
- Move it to
In progress
- Create a feature branch off master
- Do the work
- Get all tests green locally
- Push branch to
origin
, eg.git push -u origin my_feature_branch
- Check automated tests for branch pass (no conflicts, CircleCI, RuboCop)
- Create a PR
- Move ticket to
Needs review
on Kanban board - Get PR reviewed and approved
- Merge down to
master
- Discuss if it's a reasonable time to merge to staging
- Merge to
staging
- Move ticket to
Awaiting QA
on Kanban board - Communicate with team about test plan for new stuff on staging
- Move tickets to
QA Accepted
on Kanban board - Release manager checks with team that we're good to promote staging to production
- Merge
staging
toproduction
- Create a tag, Eg.
git tag -a v5.0.3 -m 'An annotated tag'
- Go into semaphore and do a manual deploy
- Sanity check on production that core flows work, and review features
- Release manager moves tickets from
QA Accepted
toReleased
- Delete feature branches once they are in the tag