3.7 KiB
3.7 KiB
1. Lập kế hoạch
- Tổng thể về dự án
- Xác định backlog
- Xác định các chức năng phi tuyến tính
- Xác định Tổng quan dự án: Tổng quan
2. First Design
- Phác thảo kiến trúc
- Quyết định cấu trúc thư mục (U-Hierarchy)
3. Kiểm tra lại các tiêu & Quy ước
- Review lại tron Docs Folder, Guideline Folder
- Quy trình CI/CD
- Coding Convention
- Commit Message
- Branching Strategy - Branch Strategy
4. Khởi tạo repo mới
- Khởi tạo repo & Protect Branches cho main
- Yêu cầu PR để được merge vào main
- ÍT nhất 1 lượt Approval
- Pass Pipeline
- Permission Push to main
- Xây dựng Starter Kit
- Xây dựng cấu trúc folder (như phần 1)
- File cấu hình cơ bản
.gitignore- Git Template.gitmessage- Git Template- Readme.md - Thông tin dự án
- .env - File môi trường
- Dockerfile - Docker Template
- docker-compose.yml - Docker Template
- Makefile - Makefile
- Khởi tạo dự án trong ngôn ngữ lập trình
- Golang: go mod init path/to/repo
- Nodejs: npm init
- Hot reload cho golang: Cấu hình với Air Tomb Air Tomb - Golang Cấu hình Air Tom
- Thiết lập pipeline cho CI/CD
- Tạo thư mục
.gitea/workflow - Tạo file yaml cho Dev & Main
- Trigger khi
feature/task-id: Pipeline Template(Dev) - Trigger khi
mainhoặc đánh tagv*: Pipeline Template(Main)
- Trigger khi
- Cấu hình cơ bản pipeline cần có
- Check out
- Setup ngôn ngữ
- Caching Dependencies
- Linting
- Unit Test & Coverage report
- Security Scan
- Build Artifact
- Upload Artifact (Main Branch)
- Push to Docker (Main Branch)
- Deploy to VPS(Staging) (Main Branch)
- Deploy to VPS(Production) by Tag or Release (Main Branch)
- Xây dựng danh sách các action và library phù hợp với phiên bản hiện tại
- actions/checkout@v4
- actions/setup-go@v5
- actions/cache@v3
- golangci/golangci-lint-action@v6
- golang/govulncheck-action@v1
- actions/upload-artifact@v3
- actions/download-artifact@v3
- docker/setup-buildx-action@v3
- docker/build-push-action@v5
- Tạo thư mục
- Tạo code mẫu
- Health API để check live
- Load & Read Config
- Connect to Database
- Cấu trúc thư mục & Module(U-Hierarchy)
- Unit test sample - Tham khảo Unit Test Rules
5. Push Starter Kit lên main
- Review lại toàn bộ file
- Tạo Branch init rồi PR vào main để chạy thử Pipeline
- Commit rõ ràng cho việc init:
chore: initial project setup and starter kit
6. Checklist cho Team Lead khi Khởi tạo Repo/Service:
- Đã xác định mục tiêu, phạm vi repo/service.
- Đã có thiết kế high-level ban đầu.
- Repository trên Gitea đã được tạo và cấu hình "Protected Branch".
- File
.gitignoređã được thêm và tùy chỉnh. - File
README.mdcơ bản đã được cập nhật. - File
.env.exampleđã được tạo. Dockerfileđã được tạo và tùy chỉnh.docker-compose.yml(cho local) đã được tạo.Makefilevới các target cơ bản đã được thiết lập.- Go module /
package.jsonđã được khởi tạo. - (Nếu có) Cấu hình Air cho Golang đã hoàn tất.
- CI/CD pipeline cơ bản (Dev & Main) đã được tạo trong
.gitea/workflows/. - Code boilerplate (Hello World, unit test mẫu) đã được thêm.
- Starter kit đã được commit và push lên nhánh
initvà PR vàomain. README.mdđã được hoàn thiện với hướng dẫn cho Developer.