diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e02241c6a..ff482ac5c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -250,16 +250,6 @@ jobs: with: crate: cross - # asan expects a binary at /usr/bin/llvm-symbolizer but GHA runners include - # multiple versioned binaries, like /usr/bin/llvm-symbolizer-13. This step - # finds the latest symbolizer and use it as the "base" llvm-symbolizer binary. - # - # llvm-symbolizer is necessary to get nice stack traces from asan errors. - # Otherwise the stack trace just contains a hex address like "0x55bc6a28a9b6" - - name: set llvm symbolizer - run: | - sudo ln -s $(find /usr/bin/ -maxdepth 1 -name "llvm-symbolizer-*" | sort -V | tail -n 1) /usr/bin/llvm-symbolizer - - uses: camshaft/rust-cache@v1 with: key: ${{ matrix.target }} @@ -282,11 +272,18 @@ jobs: run: | ${{ matrix.target != 'native' && 'cross' || 'cargo' }} test --workspace ${{ matrix.exclude }} ${{ matrix.target != 'native' && format('--target {0}', matrix.target) || '' }} ${{ matrix.args }} + - name: Install Nightly toolchain + id: toolchain + run: | + rustup toolchain install ${{ env.RUST_NIGHTLY_TOOLCHAIN }} --profile minimal + rustup override set ${{ env.RUST_NIGHTLY_TOOLCHAIN }} + - name: Run Unit Tests under ASAN env: RUSTDOCFLAGS: -Zsanitizer=address RUSTFLAGS: -Zsanitizer=address run: | + sudo ln -s $(find /usr/bin/ -maxdepth 1 -name "llvm-symbolizer-*" | sort -V | tail -n 1) /usr/bin/llvm-symbolizer cargo test \ -Zbuild-std \ --manifest-path ${{ env.ROOT_PATH}}/Cargo.toml \