name: CI Go # 参考实现:E:\Desktop\CICD\.gitea\workflows\ci.yml # Go 服务分两阶段: # - quality: golang:1.22-alpine 容器(不需要 docker) # - docker-build: dockerreg.eazygame.cn/node-with-docker:22 + setup-go(需要 docker 命令) # 详见 docs/standards/cicd-runbook.md §10、project_rules §15.7 on: push: branches: [main] paths: - 'services/api-gateway/**' - 'services/push-gateway/**' - 'packages/shared-go/**' - 'go.work' - '.github/workflows/ci-go.yml' pull_request: branches: [main] paths: - 'services/api-gateway/**' - 'services/push-gateway/**' - 'packages/shared-go/**' - 'go.work' - '.github/workflows/ci-go.yml' jobs: quality: runs-on: ubuntu-latest container: golang:1.22-alpine defaults: run: working-directory: services/api-gateway steps: - uses: actions/checkout@v4 - name: Download deps run: go mod download - name: Vet run: go vet ./... - name: Build run: go build ./... - name: Test run: go test ./... -v -coverprofile=coverage.out docker-build: runs-on: ubuntu-latest container: dockerreg.eazygame.cn/node-with-docker:22 needs: quality steps: - uses: actions/checkout@v4 - name: Build api-gateway run: | docker build \ -t edu/api-gateway:ci \ -f services/api-gateway/Dockerfile \ services/api-gateway