74 lines
2.4 KiB
YAML
74 lines
2.4 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main]
|
|
push:
|
|
branches: [main, "feat/**", "fix/**", "chore/**"]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
docs-check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: git diff --check
|
|
- run: python3 scripts/check-doc-links.py
|
|
|
|
backend-test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: 安装 uv
|
|
run: |
|
|
curl -LsSf https://astral.sh/uv/0.9.24/install.sh | sh
|
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
- run: uv sync --frozen
|
|
working-directory: backend
|
|
- run: uv run python -m compileall -q app
|
|
working-directory: backend
|
|
- run: uv run pytest
|
|
working-directory: backend
|
|
- run: python3 scripts/phase3-production-acceptance.py --list-cases --json
|
|
|
|
service-test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: corepack enable && corepack prepare pnpm@10.28.0 --activate
|
|
- run: pnpm install --frozen-lockfile && pnpm build
|
|
working-directory: server sync/console
|
|
- run: git diff --exit-code -- "server sync/sync_server/static"
|
|
- name: 安装 uv
|
|
run: |
|
|
curl -LsSf https://astral.sh/uv/0.9.24/install.sh | sh
|
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
- run: uv sync --frozen
|
|
working-directory: backend
|
|
- run: uv sync --frozen && uv run pytest
|
|
working-directory: server sync
|
|
- run: uv sync --frozen && uv run pytest
|
|
working-directory: community-server
|
|
- run: backend/.venv/bin/python scripts/phase3-isolated-smoke.py
|
|
|
|
frontend-test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- run: corepack enable && corepack prepare pnpm@10.28.0 --activate
|
|
- run: pnpm install --frozen-lockfile
|
|
working-directory: frontend
|
|
- run: pnpm test && pnpm type-check && pnpm build
|
|
working-directory: frontend
|
|
|
|
rust-core:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: 安装 Rust 工具链
|
|
run: |
|
|
curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs | sh -s -- -y --profile minimal --component rustfmt,clippy
|
|
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
- run: cargo fmt --check && cargo test --lib --locked && cargo clippy --lib --locked -- -D warnings
|
|
working-directory: frontend/src-tauri
|