name: CI on: push: branches: [main] permissions: contents: write jobs: Check: strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] item: [build, clippy, test, arg-picker, markdown-code, examples, docs-refresh, api-docs] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 - run: cargo ci --check-${{ matrix.item }} - name: Upload docs test result on failure if: failure() && matrix.item == 'markdown-code' uses: actions/upload-artifact@v4 with: name: docs-test-result-${{ matrix.os }}.md path: .temp/DOCS-TEST-RESULT.md Move-Unreleased-Tag: if: github.ref == 'refs/heads/main' needs: [Check] runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - run: | git tag -f unreleased git push origin unreleased --force Deploy-Github-Pages: needs: [Move-Unreleased-Tag] permissions: contents: read pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Install nightly toolchain run: rustup toolchain install nightly - name: Build API docs run: cargo +nightly run --manifest-path .run/Cargo.toml --bin deploy-api-docs -- --docsrs - name: Install cargo-llvm-cov run: cargo install --git https://github.com/Weicao-CatilGrass/cargo-llvm-cov cargo-llvm-cov - name: Run cov-test run: cargo run --manifest-path .run/Cargo.toml --bin cov-test - name: Delete .temp directory before deployment run: rm -rf .temp - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: path: "." - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v5