- Find a ticket from the top of
To Docolumn 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 reviewon 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 QAon Kanban board - Communicate with team about test plan for new stuff on staging
- Move tickets to
QA Acceptedon Kanban board - Release manager checks with team that we're good to promote staging to production
- Merge
stagingtoproduction - 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 AcceptedtoReleased - Delete feature branches once they are in the tag