chore(ci): bump mozilla-actions/sccache-action from 0.0.9 to 0.0.10 in the github-actions-all group across 1 directory #339
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI - Verification | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - '**.rs' | |
| - '**/Cargo.toml' | |
| - '**/Cargo.lock' | |
| - 'specs/**' | |
| - 'scripts/verification/verify-*.sh' | |
| - 'scripts/verification/check-kani-coverage.sh' | |
| - '.github/workflows/ci-verification.yml' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - '**.rs' | |
| - '**/Cargo.toml' | |
| - '**/Cargo.lock' | |
| - 'specs/**' | |
| - 'scripts/verification/verify-*.sh' | |
| - 'scripts/verification/check-kani-coverage.sh' | |
| - '.github/workflows/ci-verification.yml' | |
| workflow_dispatch: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| # Validate Kani proof coverage before running actual proofs | |
| kani-coverage-check: | |
| name: Kani Proof Coverage | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Validate Kani proof coverage | |
| run: ./scripts/verification/check-kani-coverage.sh | |
| # This ensures all #[kani::proof] functions are in tier lists | |
| # TLA+ Model Checking | |
| tla-verification: | |
| name: TLA+ Model Checking | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Set up Java 17 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Cache TLA+ tools | |
| uses: actions/cache@v5 | |
| with: | |
| path: .tla-tools | |
| key: tla-tools-v1.8.0 | |
| - name: Run TLA+ verification | |
| run: ./scripts/verification/verify-tla.sh --fail-fast | |
| timeout-minutes: 30 | |
| # Z3 SMT Solver Verification | |
| z3-verification: | |
| name: Z3 SMT Verification | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install stable toolchain | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: stable | |
| - name: Install cargo-nextest | |
| uses: ./.github/actions/install-cargo-tool | |
| with: | |
| tool: cargo-nextest | |
| - name: Configure sccache | |
| id: sccache | |
| uses: mozilla-actions/sccache-action@v0.0.10 | |
| continue-on-error: true | |
| - name: Verify sccache is working | |
| id: sccache-check | |
| if: steps.sccache.outcome == 'success' | |
| run: ./scripts/ci/verify-sccache.sh | |
| continue-on-error: true | |
| - name: Clear sccache env on failure | |
| if: steps.sccache.outcome != 'success' || steps.sccache-check.outcome != 'success' | |
| run: | | |
| echo "RUSTC_WRAPPER=" >> "$GITHUB_ENV" | |
| echo "SCCACHE_GHA_ENABLED=" >> "$GITHUB_ENV" | |
| - name: Cache cargo registry and build | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: z3-${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| z3-${{ runner.os }}-cargo- | |
| - name: Install Z3 library | |
| run: sudo apt-get update && sudo apt-get install -y libz3-dev | |
| - name: Run Z3 verification tests (nextest) | |
| run: cargo nextest run --profile ci --test verification --features z3-verification -E 'test(z3)' | |
| timeout-minutes: 10 | |
| env: | |
| RUSTC_WRAPPER: ${{ steps.sccache-check.outputs.working == 'true' && 'sccache' || '' }} | |
| SCCACHE_GHA_ENABLED: ${{ steps.sccache-check.outputs.working == 'true' && 'true' || 'false' }} | |
| SCCACHE_IGNORE_SERVER_IO_ERROR: "1" | |
| SCCACHE_STARTUP_NOTIFY_TIMEOUT: "60" | |
| SCCACHE_IDLE_TIMEOUT: "0" | |
| # Kani Formal Verification (Tier 1 - Fast proofs) | |
| kani-tier1: | |
| name: Kani Tier 1 (Fast) | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Rust nightly | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: nightly | |
| - name: Cache Kani | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/bin/cargo-kani | |
| ~/.cargo/bin/kani-* | |
| ~/.kani | |
| key: kani-0.66.0-${{ runner.os }} | |
| - name: Install Kani with retry | |
| uses: nick-fields/retry@v4 | |
| with: | |
| timeout_minutes: 15 | |
| max_attempts: 3 | |
| retry_wait_seconds: 60 | |
| command: | | |
| if ! command -v cargo-kani &> /dev/null; then | |
| cargo install --locked kani-verifier | |
| cargo kani setup | |
| fi | |
| - name: Verify toolchain | |
| run: | | |
| echo "=== Environment Diagnostics ===" | |
| echo "PATH: $PATH" | |
| echo "Cargo: $(which cargo)" | |
| echo "Rustc: $(rustc --version)" | |
| echo "Kani: $(cargo kani --version)" | |
| - name: Run Kani verification (Tier 1 - Fast) | |
| run: ./scripts/verification/verify-kani.sh --quick --tier 1 --fail-fast --verbose | |
| timeout-minutes: 15 | |
| # Kani Formal Verification (Tier 2 - Medium proofs, split into 6 parallel jobs) | |
| kani-tier2: | |
| name: Kani Tier 2 (${{ matrix.part }}/6) | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| part: [1, 2, 3, 4, 5, 6] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Rust nightly | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: nightly | |
| - name: Cache Kani | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/bin/cargo-kani | |
| ~/.cargo/bin/kani-* | |
| ~/.kani | |
| key: kani-0.66.0-${{ runner.os }} | |
| - name: Install Kani with retry | |
| uses: nick-fields/retry@v4 | |
| with: | |
| timeout_minutes: 15 | |
| max_attempts: 3 | |
| retry_wait_seconds: 60 | |
| command: | | |
| if ! command -v cargo-kani &> /dev/null; then | |
| cargo install --locked kani-verifier | |
| cargo kani setup | |
| fi | |
| - name: Verify toolchain | |
| run: | | |
| echo "=== Environment Diagnostics ===" | |
| echo "PATH: $PATH" | |
| echo "Cargo: $(which cargo)" | |
| echo "Rustc: $(rustc --version)" | |
| echo "Kani: $(cargo kani --version)" | |
| - name: Run Kani verification (Tier 2 - Part ${{ matrix.part }}/6) | |
| run: ./scripts/verification/verify-kani.sh --quick --tier 2 --part ${{ matrix.part }} --parts 6 --fail-fast --jobs 2 | |
| timeout-minutes: 10 | |
| # Kani Formal Verification (Tier 3 - Slow proofs, split into 5 parallel jobs) | |
| kani-tier3: | |
| name: Kani Tier 3 (${{ matrix.part }}/5) | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| part: [1, 2, 3, 4, 5] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install Rust nightly | |
| uses: dtolnay/rust-toolchain@master | |
| with: | |
| toolchain: nightly | |
| - name: Cache Kani | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/bin/cargo-kani | |
| ~/.cargo/bin/kani-* | |
| ~/.kani | |
| key: kani-0.66.0-${{ runner.os }} | |
| - name: Install Kani with retry | |
| uses: nick-fields/retry@v4 | |
| with: | |
| timeout_minutes: 15 | |
| max_attempts: 3 | |
| retry_wait_seconds: 60 | |
| command: | | |
| if ! command -v cargo-kani &> /dev/null; then | |
| cargo install --locked kani-verifier | |
| cargo kani setup | |
| fi | |
| - name: Verify toolchain | |
| run: | | |
| echo "=== Environment Diagnostics ===" | |
| echo "PATH: $PATH" | |
| echo "Cargo: $(which cargo)" | |
| echo "Rustc: $(rustc --version)" | |
| echo "Kani: $(cargo kani --version)" | |
| - name: Run Kani verification (Tier 3 - Part ${{ matrix.part }}/5) | |
| run: ./scripts/verification/verify-kani.sh --quick --tier 3 --part ${{ matrix.part }} --parts 5 --fail-fast --jobs 2 | |
| timeout-minutes: 20 | |
| # Loom Concurrency Testing (cross-platform) | |
| loom-tests: | |
| name: Loom Concurrency Tests (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 30 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install stable toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Cache cargo registry and build | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| loom-tests/target | |
| key: loom-${{ matrix.os }}-cargo-${{ hashFiles('loom-tests/Cargo.lock') }} | |
| restore-keys: | | |
| loom-${{ matrix.os }}-cargo- | |
| - name: Run Loom tests | |
| working-directory: loom-tests | |
| run: cargo test --release | |
| env: | |
| RUSTFLAGS: "--cfg loom" | |
| LOOM_MAX_PREEMPTIONS: 3 |