2.5 KiB
2.5 KiB
Quy trình phát triển
Branch Strategy
- Trunk-Based Development là phương pháp quản lý nhánh trong Git, nơi tất cả thay đổi được tích hợp thường xuyên vào nhánh chính (
main), còn gọi là "trunk". - Tên nhánh trùng với tiêu chuẩn của Git Commit Message
feat: Tạo tính năng mớifix: Sửa lỗidocs: Thay đổi tài liệustyle: Thay đổi không ảnh hưởng đến logicrefactor: Refactor codetest: Thêm hoặc sửa testchore: Thay đổi cấu hình hoặc các task không liên quan đến code
Quy trình làm việc
1. Khởi tạo công việc
- Tạo issue mô tả công việc cần thực hiện
- Gán assignee và labels phù hợp
- Ước lượng effort và deadline
2. Phát triển
-
Tạo nhánh từ
mainvới quy ước đặt tên:<type>/<issue-number>-<short-description>Ví dụ:
feat/123-user-authentication -
Thực hiện thay đổi, tuân thủ coding standards
-
Commit thường xuyên với commit message rõ ràng
<type>(<scope>): <subject>Ví dụ:
feat(auth): implement JWT token validation
3. Kiểm thử
- Viết unit tests cho mọi thay đổi
- Đảm bảo test coverage đạt yêu cầu
- Chạy linting và static code analysis
4. Review
- Tạo pull request (PR) vào nhánh
main - Mô tả chi tiết các thay đổi
- Request review từ ít nhất 1 team member
- Khi được approve, resolve tất cả comments
5. Triển khai
- Merge PR vào
main(squash và fast-forward) - CI/CD pipeline sẽ tự động build và deploy
- Theo dõi logs và metrics sau khi deploy
Gitea Workflow
Gitea Actions
- Cấu hình trong
.gitea/workflows/ - Định nghĩa các jobs: build, test, lint, deploy
- Trigger dựa trên events: push, PR, tag
Gitea Secrets
- Sử dụng Secret Manager để lưu trữ credentials
- Truy cập secrets trong workflows
Gitea Registry
- Build và push Docker images
- Versioning theo semantic versioning
Conventions
Commit Messages
- Format:
<type>(<scope>): <subject> - Types: feat, fix, docs, style, refactor, test, chore
- Scope: module/component tương ứng
- Subject: mô tả ngắn gọn, rõ ràng
Versioning
- Theo Semantic Versioning: MAJOR.MINOR.PATCH
- MAJOR: breaking changes
- MINOR: backwards-compatible features
- PATCH: backwards-compatible bug fixes
Release Process
- Tạo tag với version mới
- Cập nhật changelog
- Deploy lên môi trường production