From df59c4640f32c44970fb4eee3e3129c33fad31ca Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 6 May 2026 11:20:48 +0800 Subject: [PATCH] chore(repo): add codeowners and basic ci --- .github/CODEOWNERS | 9 ++++++++ .github/workflows/ci.yml | 44 ++++++++++++++++++++++++++++++++++++++++ README.md | 3 +++ 3 files changed, 56 insertions(+) create mode 100644 .github/CODEOWNERS create mode 100644 .github/workflows/ci.yml 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`