diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..2fac671 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,57 @@ +name: CI + +on: + push: + branches: + - '**' + tags-ignore: + - '**' + +jobs: + frontend: + name: 前端检查 (TypeScript + Lint + Test) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: '20' + cache: 'npm' + + - run: npm ci + + - name: TypeScript 类型检查 + run: npx tsc --noEmit + + - name: ESLint + run: npm run lint + + - name: Vitest 测试 + run: npm test + + rust: + name: Rust 检查 (Check + Clippy + Test) + runs-on: windows-latest + defaults: + run: + working-directory: src-tauri + steps: + - uses: actions/checkout@v4 + + - name: 安装 GNU 工具链 + run: | + rustup toolchain install stable-x86_64-pc-windows-gnu + rustup override set stable-x86_64-pc-windows-gnu + + - name: 添加 MinGW 到 PATH + run: echo "C:\msys64\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Append + + - name: Cargo Check + run: cargo check + + - name: Cargo Clippy + run: cargo clippy -- -D warnings + + - name: Cargo Test + run: cargo test