diff --git a/.github/actions/setup-builder/action.yml b/.github/actions/setup-builder/action.yml index 532174590f..35dc43cd5d 100644 --- a/.github/actions/setup-builder/action.yml +++ b/.github/actions/setup-builder/action.yml @@ -35,14 +35,16 @@ runs: rustup toolchain install ${RUST_VERSION} rustup override set ${RUST_VERSION} rustup component add rustfmt clippy + - name: Setup Rust toolchain according to rust-toolchain.toml shell: bash if: ${{ inputs.rust-version == '' }} run: | echo "Installing toolchain according to rust-toolchain.toml" rustup show - rustup component add rustfmt clippy + rustup component add rustfmt clippy miri + - name: Fixup git permissions # https://github.com/actions/checkout/issues/766 shell: bash - run: git config --global --add safe.directory "$GITHUB_WORKSPACE" \ No newline at end of file + run: git config --global --add safe.directory "$GITHUB_WORKSPACE" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7d94370fe5..ba6088318a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,6 +31,8 @@ concurrency: env: rust_msrv: "1.85.0" + # Disable stacked borrows due to crossbeam-epoch limitations + MIRIFLAGS: "-Zmiri-disable-isolation -Zmiri-backtrace=full -Zmiri-disable-stacked-borrows" jobs: check: @@ -148,15 +150,34 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 + - name: Setup Nightly Rust toolchain uses: ./.github/actions/setup-builder + - name: Generate minimal versions lockfile run: | cargo generate-lockfile -Z direct-minimal-versions -Z minimal-versions + - name: Setup MSRV Rust toolchain uses: ./.github/actions/setup-builder with: rust-version: ${{ env.rust_msrv }} + - name: Check MSRV run: | cargo +${{ env.rust_msrv }} check --locked --workspace + + miri: + name: Run Miri + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - name: Setup Nightly Rust toolchain + uses: ./.github/actions/setup-builder + + - name: Miri setup + run: cargo miri setup + + - name: Run Miri + run: cargo miri test -- --skip test_compression_codec_zstd