# Quy tắc Áp dụng CI/CD – Dành cho Nhóm Phát Triển
| Quy tắc | Diễn giải / Hành động cụ thể |
| --------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Không làm việc trực tiếp trên nhánh chính (main/master/develop) | - Dev không push trực tiếp lên nhánh chính.
- Git server cấu hình "Protected Branches", yêu cầu Pull Request. |
| Đặt tên nhánh theo quy tắc (feat/, fix/, chore/, ...) | - Tuân thủ naming convention khi tạo nhánh mới.
- Có thể dùng pre-receive hook hoặc CI lint để kiểm tra tên nhánh. |
| Không hardcode biến, dùng `.env` cho local | - Không ghi trực tiếp token, URL... vào code.
- Sử dụng secret management và `.env`. |
| Document rõ nếu template CI bị chỉnh sửa lớn | - Ghi chú lại những thay đổi cấu trúc template CI/CD để chia sẻ với team, không ảnh hưởng luồng hàng ngày. |
| Mọi thay đổi qua Pull Request (có review) | - Code được review trước khi merge.
- PR trigger pipeline và cần pass + được review đầy đủ trước khi merge. |
| Test phải pass 100% (unit, integration, coverage) | - Nếu bất kỳ test nào fail → pipeline dừng.
- Kiểm tra code coverage đủ ngưỡng tối thiểu. |
| Ưu tiên giữ pipeline luôn "Xanh" (Green) | - Khi có lỗi phải fix sớm.
- Coi việc pipeline đỏ là blocker. |
| Tối ưu hóa thời gian chạy pipeline định kỳ | - Review log pipeline theo chu kỳ để giảm thời gian chờ build/test. |
| Cấu hình cảnh báo pipeline (Slack, Email, Teams...) | - Gửi notify khi lỗi hoặc deploy thành công. |
| Commit message ý nghĩa | - Viết commit rõ ràng.
- Có thể dùng pre-commit hook hoặc CI lint commit message. |
| "Definition of Done" (DoD) | - Checklist kiểm tra các bước đã pass, QA/PO đã nghiệm thu trước khi đóng task. |
| Ai chịu trách nhiệm khi pipeline lỗi? | - Người vừa push hoặc cả team (tuỳ lỗi).
- Có cơ chế phân công hoặc cảnh báo rõ người chịu trách nhiệm xử lý. |