Chia sẻ workflow hiện tại.Đang follow dựa theo
Gitlab Flow, nhưng đặt tên branch khác đi.
- develop: single source of truth, tất cả các tính năng đều phải checkout -b từ đây.
- release/sprint_xx: branch được tạo cho QC test, chuẩn bị lên production. Nếu QC đánh PASS, thì sẽ tạo tag v.xx để deploy production.
*
Khi có tính năng mới
Ruby:
# 1. Lấy code mới nhất về
> git checkout develop && git pull origin develop
# 2. Checkout nhánh mới -> code -> commit
> git checkout -b feat/add_something
# ...code...
> git add . && git commit -m 'add something'
# 3. Tạo merge request
# Lấy code mới nhất và rebase.
> git fetch origin
> git rebase origin/develop
> git push origin feat/add_something
# Lên gitlab tạo MR từ feat/add_something --> develop
* Khi QC cần test
Ruby:
> git checkout develop && git pull origin develop
> git checkout -b release/sprint_xx
# CI/CD deploy
* Production
- Đánh tag từ branch
release/sprint_xx. -> CI/CD deploy
* Hotfix
Ruby:
> git checkout --track release/sprint_xx
> git checkout -b hotfix/sprint_xx
# fix & commit code && push
# Tạo MR vào release/sprint_xx
# QC verify PASS --> đánh tag v.xx.y. Đồng thời chery-pick về develop
# CI/CD deploy