GIT WORKFLOW STEP BY STEP Presenter: BinhQD Twitter: @binhqd Github: binhqd LinkedIn: /in/binhqd
GIT WORKFLOW STEP BY STEP
Presenter: BinhQD
Twitter: @binhqd
Github: binhqd
LinkedIn: /in/binhqd
ROLES
1. Developer
2. Team Lead
3. Tester
4. QM
GIT StepsStep Developer Team Lead Tester QM
I.1 Create issues - Create “develop” branch- Create/Assign issues
STEPS: STEP 1 - Creat develop branch
NOTE
❖ develop must be branched from master
❖ Developers are not allowed to push their commit directly to
this branch
❖ Issue’s title must be meaningful and need to be applied with
label(s): Urgent, Block, Bug, Support, Enhancement, etc
GIT StepsStep Developer Team Lead Tester QM
I.1 Create issues - Create “develop” branch- Create/Assign issues
I.2 Create branches from dev
STEPS: STEP 2 - Create feature branch from develop
NOTE
❖ feature branches must be created from develop
❖ develop must be up-to-date before creating new branch
GIT StepsStep Developer Team Lead Tester QM
I.1 Create issues - Create “develop” branch- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
STEPS: STEP 3 - Add commits
NOTE
❖ Ignore files/dirs that unrelated to project or contain
development information
❖ Each commit must be clean
❖ Don’t include works of other commit
❖ Add issue references
❖ Each commit message should follow “Commit Message
Convention”
GIT StepsStep Developer Team Lead Tester QM
I.1 Create issues - Create “develop” branch- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
STEPS: STEP 4 - Create Pull Request
NOTE
❖ Developers must test their code by themselves before
creating a Pull Request
❖ Developers must review their code line by line, file by file
before create a PR
❖ Add issue references
GIT StepsStep Developer Team Lead Tester QM
I.1 Create issues - Create “develop” branch- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
I.5 - Review PRs- Merge PRs Do testing per PR. Review by random pick
STEPS: STEP 5 - Review & Merge PR
STEPS: STEP 5 - Review & Merge more PRs
NOTE
❖ Team lead must review developer’s code carefully before
doing a Merge
➢ Convention/Standard
➢ Typo
➢ Detect hidden issues, risk
➢ Running CI
➢ Merge locally and running demo
❖ Reject:
➢ Add reject comment
❖ Approve & Merge
GIT StepsStep Developer Team Lead Tester QM
I.1 Create issues - Create “develop” branch- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
I.5 - Review PRs- Merge PRs Do testing per PR. Review by random pick
I.6
- Create/Merge branch for releases (release)- Running CI- Create new branches for fixing bugs (bugfix) from release- Update bug fixes back to develop
Regressive Test per release on Staging site (UAT)
Review regressive test result.Approve/Deny
STEPS: STEP 6 - Create release branch
STEPS: STEP 6 - Fix bugs for release branch
GIT StepsStep Developer Team Lead Tester QM
I.1 Create issues - Create “develop” branch- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
I.5 - Review PRs- Merge PRs Do testing per PR. Review by random pick
I.6
- Create/Merge branch for releases (release)- Running CI- Create new branches for fixing bugs (bugfix) from release- Update bug fixes back to develop
Regressive Test per release on Staging site (UAT)
Review regressive test result.Approve/Deny
I.7
Req: Approval from QM- Create PR from release branch to master- Running CI- Test Restore script
Review CI outputApprove/Deny
STEPS: STEP 7 - Create PR from release to master
GIT StepsStep Developer Team Lead Tester QM
I.1 Create issues - Create “develop” branch- Create/Assign issues
I.2 Create branches from dev
I.3 Add commits
I.4 Create Pull Requests (PR)
I.5 - Review PRs- Merge PRs Do testing per PR. Review by random pick
I.6
- Create/Merge branch for releases (release)- Running CI- Create new branches for fixing bugs (bugfix) from release- Update bug fixes back to develop
Regressive Test per release on Staging site (UAT)
Review regressive test result.Approve/Deny
I.7
Req: Approval from QM- Create PR from release branch to master- Running CI- Test Restore script
Review CI outputApprove/Deny
I.8
Req: Approval from QM- Merge PR from Release to master- Running CI:
+ Auto Deployment+ Auto Tag for each Release
Regressive Test per merged PR (UAT)
Review regressive test output
STEPS: STEP 8 - Review & Merge PR to master
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
STEPS: Create bugfix for master
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
STEPS: Fix bug for hotfix branch
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
II.3 Create PR
STEPS: Create PR for hotfix
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
II.3 Create PR
II.4- Review PRs- Merge PRs from developers to hotfix
Do testing per PR
STEPS: Review & Merge PR for hotfix
STEPS: Continue fixing bugs for hotfix
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
II.3 Create PR
II.4- Review PRs- Merge PRs from developers to hotfix
Do testing per PR
II.5
- Create PR from hotfix branch to Master- Running CI- Test Restore script
Review CI outputApprove/Deny
STEPS: Create PR to update master
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE (severity: medium/low)
II.1 Create hotfix branch
II.2 Add commits Add commits
II.3 Create PR
II.4- Review PRs- Merge PRs from developers to hotfix
Do testing per PR
II.5
- Create PR from hotfix branch to Master- Running CI- Test Restore script
Review CI outputApprove/Deny
II.6
Req: Approval from QM- Merge PR from hotfix to master- Running CI:
+ Auto Deployment+ Auto Tag for each Release
Regressive Test per merged PR (UAT)
Review regressive test output
STEPS: Review & Merge master from bugfix
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1 Restore LIVE to previous TAG using script
Regressive test after restore Review changes
STEPS: Revert to previous version
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1 Restore LIVE to previous TAG using script
Regressive test after restore Review changes
III.2Create branch for fixing bugs (bugfix) from previous Release Point (release branch)
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1 Restore LIVE to previous TAG using script
Regressive test after restore Review changes
III.2Create branch for fixing bugs (bugfix) from previous Release Point (release branch)
III.3 Add commits Add commits
STEPS: Fixing bugs for release branch
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1 Restore LIVE to previous TAG using script
Regressive test after restore Review changes
III.2Create branch for fixing bugs (bugfix) from previous Release Point (release branch)
III.3 Add commits Add commits
III.4 Create PR - Update bugfix back to develop
STEPS: Create PR for release branch from bugfixes
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1 Restore LIVE to previous TAG using script
Regressive test after restore Review changes
III.2Create branch for fixing bugs (bugfix) from previous Release Point (release branch)
III.3 Add commits Add commits
III.4 Create PR
III.5
- Review PRs- Merge PRs from bugfix to release Do testing per PR. Review by random pick
STEPS: Review & Merge bug fixes for release
GIT StepsStep Developer Team Lead Tester QM
If errors occurs on LIVE caused critical issues (Blocking issues)
III.1 Restore LIVE to previous TAG using script
Regressive test after restore Review changes
III.2Create branch for fixing bugs (bugfix) from previous Release Point (release branch)
III.3 Add commits Add commits
III.4 Create PR
III.5
- Review PRs- Merge PRs from bugfix to release Do testing per PR. Review by random pick
Back to I.7
STEPS: Create PR from release to master
Back to step I.7 for to complete the workflow
Thanks