name: 检查 on: push: branches: [main, feat/**] pull_request: jobs: checks: name: 检查 runs-on: ubuntu-latest services: postgres: image: postgres:14 env: POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_DB: muse_acceptance ports: ["5432:5432"] options: >- --health-cmd "pg_isready -U postgres -d muse_acceptance" --health-interval 5s --health-timeout 5s --health-retries 10 env: MUSE_TEST_DATABASE_URL: postgresql://postgres@127.0.0.1:5432/muse_acceptance steps: - uses: actions/checkout@v4 - uses: astral-sh/setup-uv@v5 with: python-version: "3.12" - uses: pnpm/action-setup@v4 with: version: 10.6.4 - uses: actions/setup-node@v4 with: node-version: "24.15.0" cache: pnpm cache-dependency-path: web/pnpm-lock.yaml - name: 安装前端依赖 run: make 前端安装 - name: 安装依赖 run: make 安装 - name: 格式与类型检查 run: | make 格式 make 类型 - name: 索引一致性 run: uv run python 工具/维护索引.py --检查 - name: 前端检查与交互测试 run: | make 前端检查 make 前端测试 - name: 离线测试 run: make 测试 - name: 构建并验收同批安装包 run: | make 构建 make 包验收 包=dist/muse-0.1.0-py3-none-any.whl - name: 初始化隔离用途角色 run: psql "$MUSE_TEST_DATABASE_URL" -v ON_ERROR_STOP=1 -f 数据库/初始化/用途角色.sql - name: 隔离数据库测试 run: MUSE_RUN_FULL_DB=1 make 数据库测试 - name: 固定Pi宿主整链 run: | npm install --prefix "$RUNNER_TEMP/muse-pi" --no-save --ignore-scripts @earendil-works/pi-coding-agent@0.85.1 MUSE_PI_NODE="$(command -v node)" MUSE_PI_PACKAGE="$RUNNER_TEMP/muse-pi/node_modules/@earendil-works/pi-coding-agent" make 宿主测试