How we use Github
Github Process
- Add an
issue to github (allows easy overall visibility of currently open / previously closed issues). You can @ relevant people across teams in the description. - Click to convert into a
branch from main base (rename with a semantic branch type such as fixfeatchorerefactortest) - Develop to your heart's content on your local
- Merge your
feature-branchintostaging
other devs may have feature branches on here too
watch out for conflicts and @ any affected parties
- When you merge onto staging, a github action should auto deploy it
- Commence QA on staging
- QA Failed
- Return to step 3
- QA Passed
- Create a PR to merge
feature-branchtomaster - Request Approval from another dev
- Squash Merge
feature-branchintomaster(keeps it clean..) - Create a new release on
master, add some details in the description (easy to do via Github GUI) - Issue closed, feature branch deleted
- Create a PR to merge
- SSH onto prod and checkout the latest release:
git fetchgit checkout v1.0.0
- @Leon Chevalier or @Brian Rogers should periodically rebase/merge/reset
stagingfrommasterto keep them synced (depending on situation & conflicts)- To reset run when in
stagingbranch:git reset --hard mastergit push -f origin
- To reset run when in
What about Hotfixes?
- Can be applied via a PR to
masterthat won't go through regular QA
- After a hotfix, we rebase/merge/reset
stagingfrommaster(depending on situation & conflicts)