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

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ớ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