name: CI - 构建和测试 on: push: branches: [main, develop] pull_request: branches: [main, develop] jobs: check: name: 类型检查 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: 安装 Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y . "$HOME/.cargo/env" echo "$HOME/.cargo/bin" >> $GITHUB_PATH - name: cargo check run: cargo check --all-targets test: name: 单元测试 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: 安装 Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y . "$HOME/.cargo/env" echo "$HOME/.cargo/bin" >> $GITHUB_PATH - name: cargo test run: cargo test --all clippy: name: 代码质量 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: 安装 Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y . "$HOME/.cargo/env" echo "$HOME/.cargo/bin" >> $GITHUB_PATH rustup component add clippy - name: cargo clippy run: cargo clippy --all-targets -- -D warnings build: name: Linux 构建 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: 安装 Rust run: | curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y . "$HOME/.cargo/env" echo "$HOME/.cargo/bin" >> $GITHUB_PATH - name: cargo build run: cargo build --release