starter-kit/docs/workflow.md
2025-05-21 12:39:40 +07:00

85 lines
2.5 KiB
Markdown

# 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ới
- `fix`: Sửa lỗi
- `docs`: Thay đổi tài liệu
- `style`: Thay đổi không ảnh hưởng đến logic
- `refactor`: Refactor code
- `test`: Thêm hoặc sửa test
- `chore`: 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ừ `main` vớ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