name: Continuous Integration on: push: branches: [main] pull_request: branches: - "**" workflow_dispatch: branches: - "**" concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true env: CARGO_TERM_COLOR: always jobs: test: name: Test Suite runs-on: ubuntu-latest timeout-minutes: 30 if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" steps: - name: Checkout sources uses: actions/checkout@v4 - name: Install nightly toolchain uses: dtolnay/rust-toolchain@nightly - name: Set up rust cache uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - name: Check in plonky2 subdirectory run: cargo check --manifest-path plonky2/Cargo.toml env: RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 RUST_LOG: 1 CARGO_INCREMENTAL: 1 RUST_BACKTRACE: 1 - name: Check in starky subdirectory run: cargo check --manifest-path starky/Cargo.toml env: RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 RUST_LOG: 1 CARGO_INCREMENTAL: 1 RUST_BACKTRACE: 1 - name: Run cargo test run: cargo test --workspace env: RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 RUST_LOG: 1 CARGO_INCREMENTAL: 1 RUST_BACKTRACE: 1 wasm: name: Check wasm32 compatibility runs-on: ubuntu-latest timeout-minutes: 30 if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" steps: - name: Checkout sources uses: actions/checkout@v4 - name: Install nightly toolchain uses: dtolnay/rust-toolchain@nightly with: targets: wasm32-unknown-unknown - name: Set up rust cache uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - name: Check in plonky2 subdirectory for wasm targets run: cargo check --manifest-path plonky2/Cargo.toml --target wasm32-unknown-unknown --no-default-features env: RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 RUST_LOG: 1 CARGO_INCREMENTAL: 1 RUST_BACKTRACE: 1 - name: Check in starky subdirectory for wasm targets run: cargo check --manifest-path starky/Cargo.toml --target wasm32-unknown-unknown --no-default-features env: RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 RUST_LOG: 1 CARGO_INCREMENTAL: 1 RUST_BACKTRACE: 1 no_std: name: Test Suite in no-std runs-on: ubuntu-latest timeout-minutes: 30 if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" steps: - name: Checkout sources uses: actions/checkout@v4 - name: Install nightly toolchain uses: dtolnay/rust-toolchain@master with: toolchain: nightly-2024-02-01 - name: Set up rust cache uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - name: Run cargo test in plonky2 subdirectory (no-std) run: cargo test --manifest-path plonky2/Cargo.toml --no-default-features --lib env: RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 RUST_LOG: 1 CARGO_INCREMENTAL: 1 RUST_BACKTRACE: 1 - name: Run cargo test in starky subdirectory (no-std) run: cargo test --manifest-path starky/Cargo.toml --no-default-features --lib env: RUSTFLAGS: -Copt-level=3 -Cdebug-assertions -Coverflow-checks=y -Cdebuginfo=0 RUST_LOG: 1 CARGO_INCREMENTAL: 1 RUST_BACKTRACE: 1 lints: name: Formatting and Clippy runs-on: ubuntu-latest timeout-minutes: 10 if: "! contains(toJSON(github.event.commits.*.message), '[skip-ci]')" steps: - name: Checkout sources uses: actions/checkout@v4 - name: Install nightly toolchain uses: dtolnay/rust-toolchain@nightly with: components: rustfmt, clippy - name: Set up rust cache uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - name: Run cargo fmt run: cargo fmt --all --check - name: Run cargo clippy run: cargo clippy --all-features --all-targets -- -D warnings -A incomplete-features