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
fix
feat
chore
refactor
test
) - Develop to your heart's content on your local
- Merge your
feature-branch
intostaging
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-branch
tomaster
- Request Approval from another dev
- Squash Merge
feature-branch
intomaster
(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 fetch
git checkout v1.0.0
- @Leon Chevalier or @Brian Rogers should periodically rebase/merge/reset
staging
frommaster
to keep them synced (depending on situation & conflicts)- To reset run when in
staging
branch:git reset --hard master
git push -f origin
- To reset run when in
What about Hotfixes?
- Can be applied via a PR to
master
that won't go through regular QA
- After a hotfix, we rebase/merge/reset
staging
frommaster
(depending on situation & conflicts)