diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..86fef10 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,9 @@ +* @phamnazage-jpg + +.github/ @phamnazage-jpg +db/ @phamnazage-jpg +docs/ @phamnazage-jpg +internal/ @phamnazage-jpg +prd/ @phamnazage-jpg +scripts/ @phamnazage-jpg +test/ @phamnazage-jpg diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d52cba3 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,44 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +permissions: + contents: read + +jobs: + verify: + runs-on: ubuntu-latest + timeout-minutes: 20 + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + + - name: Verify formatting + run: | + gofmt -w $(find . -name '*.go' -not -path './vendor/*') + git diff --exit-code + + - name: Run unit and integration tests + run: go test ./... -count=1 + + - name: Run race tests + run: go test -race ./... + + - name: Run vet + run: go vet ./... + + - name: Check Gate scripts syntax + run: | + bash -n scripts/verify_preprod_gate_b.sh + bash -n scripts/verify_gate_c_rollback.sh diff --git a/README.md b/README.md index 5e8cb44..66f5ce0 100644 --- a/README.md +++ b/README.md @@ -125,6 +125,9 @@ go vet ./... ## 协作约定 - 提交使用 Conventional Commits +- 仓库审阅归属见 [.github/CODEOWNERS](.github/CODEOWNERS) +- PR 会自动执行基础 CI: + `go test ./... -count=1`、`go test -race ./...`、`go vet ./...`、Gate 脚本语法检查 - 变更配置契约时,必须同步更新: - `docs/CONFIG_CONTRACT_BASELINE.md` - `test/QA_GATE_STATUS.md`