diff --git a/.github/workflows/audits.yml b/.github/workflows/audits.yml index f6a3bbc738..a3f8d42143 100644 --- a/.github/workflows/audits.yml +++ b/.github/workflows/audits.yml @@ -29,8 +29,8 @@ jobs: with: command: check licenses - required-checks: - name: Required status checks have passed + required-audits: + name: Required audits have passed needs: - cargo-vet - cargo-deny diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef0260e5f6..416f563f68 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,27 +7,70 @@ on: merge_group: jobs: - test: - name: > - Test${{ - matrix.state != 'NOT_A_PUZZLE' && format(' {0}', matrix.state) || '' - }} on ${{ matrix.target }} + required-test: + name: Test ${{ matrix.state }} on ${{ matrix.target }} runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.state != 'NOT_A_PUZZLE' }} strategy: matrix: target: - Linux - - macOS - - Windows state: - - NOT_A_PUZZLE + - no-Orchard - Orchard - NU7 include: - target: Linux os: ubuntu-latest-8cores + + - state: Orchard + extra_flags: orchard + - state: NU7 + extra_flags: orchard + rustflags: '--cfg zcash_unstable="nu7"' + + env: + RUSTFLAGS: ${{ matrix.rustflags }} + RUSTDOCFLAGS: ${{ matrix.rustflags }} + + steps: + - uses: actions/checkout@v4 + - id: prepare + uses: ./.github/actions/prepare + with: + extra-features: ${{ matrix.extra_flags || '' }} + - uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-msrv-${{ hashFiles('**/Cargo.lock') }} + - name: Run tests + run: > + cargo test + --workspace + ${{ steps.prepare.outputs.feature-flags }} + - name: Verify working directory is clean + run: git diff --exit-code + + test: + name: Test ${{ matrix.state }} on ${{ matrix.target }} + runs-on: ${{ matrix.os }} + continue-on-error: true + strategy: + matrix: + target: + - macOS + - Windows + state: + - no-Orchard + - Orchard + - NU7 + + include: - target: macOS os: macOS-latest - target: Windows @@ -36,6 +79,7 @@ jobs: - state: Orchard extra_flags: orchard - state: NU7 + extra_flags: orchard rustflags: '--cfg zcash_unstable="nu7"' exclude: @@ -51,7 +95,7 @@ jobs: - id: prepare uses: ./.github/actions/prepare with: - extra-features: ${{ matrix.state != 'NOT_A_PUZZLE' && matrix.extra_flags || '' }} + extra-features: ${{ matrix.extra_flags || '' }} - uses: actions/cache@v4 with: path: | @@ -66,6 +110,50 @@ jobs: cargo test --workspace ${{ steps.prepare.outputs.feature-flags }} + - name: Verify working directory is clean + run: git diff --exit-code + + test-slow: + name: Slow Test ${{ matrix.state }} on ${{ matrix.target }} + runs-on: ${{ matrix.os }} + continue-on-error: true + strategy: + matrix: + target: + - Linux + state: + - Orchard + - NU7 + + include: + - target: Linux + os: ubuntu-latest-8cores + + - state: Orchard + extra_flags: orchard + - state: NU7 + extra_flags: orchard + rustflags: '--cfg zcash_unstable="nu7"' + + env: + RUSTFLAGS: ${{ matrix.rustflags }} + RUSTDOCFLAGS: ${{ matrix.rustflags }} + + steps: + - uses: actions/checkout@v4 + - id: prepare + uses: ./.github/actions/prepare + with: + extra-features: ${{ matrix.extra_flags || '' }} + - uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-msrv-${{ hashFiles('**/Cargo.lock') }} - name: Run slow tests run: > cargo test @@ -78,12 +166,8 @@ jobs: # States that we want to ensure can be built, but that we don't actively run tests for. check-msrv: - name: > - Check${{ - matrix.state != 'NOT_A_PUZZLE' && format(' {0}', matrix.state) || '' - }} build on ${{ matrix.target }} + name: Check ${{ matrix.state }} build on ${{ matrix.target }} runs-on: ${{ matrix.os }} - continue-on-error: ${{ matrix.state != 'NOT_A_PUZZLE' }} strategy: matrix: target: @@ -113,7 +197,7 @@ jobs: - id: prepare uses: ./.github/actions/prepare with: - extra-features: ${{ matrix.state != 'NOT_A_PUZZLE' && matrix.extra_flags || '' }} + extra-features: ${{ matrix.extra_flags || '' }} - uses: actions/cache@v4 with: path: | @@ -368,7 +452,7 @@ jobs: required-checks: name: Required status checks have passed needs: - - test + - required-test - check-msrv - build-latest - build-nodefault