Files
Agent-System/.github/workflows/ci.yml
T
weichenandCursor 546de528aa ci: add QA-001 gate with go vet, short tests, and migration check.
Run migration gate against CI Postgres and add web npm test/build jobs on dev/test/main pushes and PRs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-12 08:59:19 +00:00

70 lines
1.7 KiB
YAML

# QA-001: main/test/dev 合并门禁 — go vet、短测、迁移校验、前端测试
name: CI
on:
push:
branches: [dev, test, main]
pull_request:
branches: [dev, test, main]
jobs:
go-vet-and-short-test:
runs-on: ubuntu-latest
services:
postgres:
image: pgvector/pgvector:pg16
env:
POSTGRES_USER: app
POSTGRES_PASSWORD: ci_secret_db_pass
POSTGRES_DB: agent_system_ci
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U app -d agent_system_ci"
--health-interval 5s
--health-timeout 5s
--health-retries 20
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.27.1"
cache-dependency-path: go.sum
- name: go vet
run: go vet ./...
- name: migration gate
env:
TEST_DATABASE_URL: postgres://app:ci_secret_db_pass@localhost:5432/agent_system_ci?sslmode=disable
run: go test -count=1 -run TestMigrationGate ./internal/db/...
- name: go test (short)
env:
TEST_DATABASE_URL: postgres://app:ci_secret_db_pass@localhost:5432/agent_system_ci?sslmode=disable
run: go test -short -timeout 20m ./...
web:
runs-on: ubuntu-latest
defaults:
run:
working-directory: web
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "22"
cache: npm
cache-dependency-path: web/package-lock.json
- name: npm ci
run: npm ci
- name: npm test
run: npm test
- name: npm build
run: npm run build