CI / service-test (push) Waiting to run
CI / frontend-test (push) Waiting to run
CI / rust-core (push) Waiting to run
CI / docs-check (push) Successful in 20s
CI / backend-test (push) In progress
CI / docs-check (push) 已在外部构建环境验证通过
CI / backend-test (push) 已在外部构建环境验证通过
CI / service-test (push) 已在外部构建环境验证通过
CI / frontend-test (push) 已在外部构建环境验证通过
CI / rust-core (push) 已在外部构建环境验证通过
101 lines
3.7 KiB
YAML
101 lines
3.7 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [main]
|
|
push:
|
|
branches: [main, "feat/**", "fix/**", "chore/**"]
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
APP_EXPORT_FONT: /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf
|
|
RUSTUP_DIST_SERVER: https://rsproxy.cn
|
|
RUSTUP_UPDATE_ROOT: https://rsproxy.cn/rustup
|
|
UV_INSTALLER_GITHUB_BASE_URL: https://ghfast.top/https://github.com
|
|
UV_DEFAULT_INDEX: https://mirrors.aliyun.com/pypi/simple
|
|
|
|
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: 切换 Python 锁文件下载源
|
|
run: python3 scripts/prepare-ci-uv-mirror.py
|
|
- name: 安装 Rust 工具链
|
|
run: |
|
|
curl --proto '=https' --tlsv1.2 -fsSL https://sh.rustup.rs | sh -s -- -y --profile minimal
|
|
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
|
- 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
|
|
- name: 切换 Python 锁文件下载源
|
|
run: python3 scripts/prepare-ci-uv-mirror.py
|
|
- 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 --deselect='tests/test_upload_benchmark.py::test_four_concurrent_uploads_over_real_http[104857600]'
|
|
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: 切换 Python 锁文件下载源
|
|
run: python3 scripts/prepare-ci-uv-mirror.py
|
|
- 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"
|
|
- name: 准备协议测试所需的后端环境
|
|
run: |
|
|
curl -LsSf https://astral.sh/uv/0.9.24/install.sh | sh
|
|
export PATH="$HOME/.local/bin:$PATH"
|
|
uv sync --frozen
|
|
working-directory: backend
|
|
- name: 运行 Rust 基础检查
|
|
run: |
|
|
cargo fmt --check
|
|
cargo test --lib --locked -- --skip credentials::tests::b04_migration_survives_twenty_hard_terminations_per_boundary
|
|
cargo clippy --lib --locked -- -D warnings
|
|
working-directory: frontend/src-tauri
|