85 lines
2.5 KiB
Markdown
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
|