name: Prover on: push: branches: - main - staging - develop - alpha paths: - 'prover/**' - '.github/workflows/prover.yml' pull_request: types: - opened - reopened - synchronize - ready_for_review paths: - 'prover/**' - '.github/workflows/prover.yml' defaults: run: working-directory: 'prover' jobs: skip_check: runs-on: ubuntu-latest outputs: should_skip: ${{ steps.skip_check.outputs.should_skip }} steps: - id: skip_check uses: fkirc/skip-duplicate-actions@v5 with: cancel_others: 'true' concurrent_skipping: 'same_content_newer' paths_ignore: '["**/README.md"]' fmt: needs: [skip_check] if: | github.event.pull_request.draft == false && (github.event.action == 'ready_for_review' || needs.skip_check.outputs.should_skip != 'true') runs-on: ubuntu-latest timeout-minutes: 5 steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: nightly-2023-12-03 components: rustfmt - name: Cargo cache uses: Swatinem/rust-cache@v2 with: workspaces: "prover -> target" - name: Cargo check run: cargo check --all-features - name: Cargo fmt run: cargo fmt --all -- --check clippy: needs: [skip_check, fmt] if: | github.event.pull_request.draft == false && (github.event.action == 'ready_for_review' || needs.skip_check.outputs.should_skip != 'true') runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: nightly-2023-12-03 components: clippy - name: Cargo cache uses: Swatinem/rust-cache@v2 with: workspaces: "prover -> target" - name: Run clippy run: cargo clippy --all-features --all-targets -- -D warnings compile: needs: [skip_check, clippy] if: | github.event.pull_request.draft == false && (github.event.action == 'ready_for_review' || needs.skip_check.outputs.should_skip != 'true') runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master with: toolchain: nightly-2023-12-03 - name: Cache cargo uses: Swatinem/rust-cache@v2 with: workspaces: "prover -> target" - name: Test run: | make prover