Git workflow step by step

Preview:

Citation preview

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

Recommended