Merge pull request #337 from pacak/dependabot/cargo/anyhow-1.0.92 #658
This file contains 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
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: ["ubuntu-latest", "windows-latest", "macos-latest"] | |
name: Tests on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Configure cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cargo/registry | |
~/.cargo/git | |
target | |
key: ${{ matrix.os }}-cargo-${{ hashFiles('./Cargo.lock') }} | |
- name: Install rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
components: rustfmt clippy rust-src | |
targets: armv7-unknown-linux-gnueabihf | |
- name: Check formatting | |
run: cargo fmt --all --check | |
- name: Clippy | |
run: cargo clippy -- -D clippy::disallowed_macros | |
- name: Build all the things | |
run: cargo build --all-features --all-targets | |
- name: Run unit tests | |
run: cargo test --all-features | |
- name: copy branch executable (non-windows) | |
shell: bash | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: mv ./target/debug/cargo-asm ./branch-asm | |
- name: copy branch executable (windows) | |
shell: bash | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: mv ./target/debug/cargo-asm.exe ./branch-asm.exe | |
- name: Checkout master | |
uses: actions/checkout@v4 | |
if: ${{ github.ref != 'refs/heads/master' }} | |
with: | |
clean: false | |
ref: "master" | |
- name: Compile master | |
if: ${{ github.ref != 'refs/heads/master' }} | |
run: cargo build --all-features --bin cargo-asm | |
- name: copy master executable (non windows) | |
shell: bash | |
if: ${{ github.ref != 'refs/heads/master' && matrix.os != 'windows-latest' }} | |
run: mv ./target/debug/cargo-asm ./master-asm | |
- name: copy master executable (windows) | |
shell: bash | |
if: ${{ github.ref != 'refs/heads/master' && matrix.os == 'windows-latest' }} | |
run: mv ./target/debug/cargo-asm.exe ./master-asm.exe | |
- name: Upload binaries (non windows) | |
if: ${{ matrix.os != 'windows-latest' && github.ref != 'refs/heads/master' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: binaries-${{ matrix.os }} | |
path: | | |
master-asm | |
branch-asm | |
- name: Upload binaries (windows) | |
if: ${{ matrix.os == 'windows-latest' && github.ref != 'refs/heads/master' }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: binaries-${{ matrix.os }} | |
path: | | |
master-asm.exe | |
branch-asm.exe | |
compare: | |
needs: build | |
if: ${{ github.ref != 'refs/heads/master' }} | |
strategy: | |
matrix: | |
os: ["ubuntu-latest", "windows-latest", "macos-latest"] | |
fail-fast: false # failure doesn't mean results are bad, it means they are different | |
# and I still want to see the difference for all the OSes | |
name: ${{ matrix.os }} difference vs master | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: stable | |
components: rustfmt clippy rust-src | |
targets: armv7-unknown-linux-gnueabihf | |
- name: Download prebuilt binaries | |
uses: actions/download-artifact@v4 | |
with: | |
name: binaries-${{ matrix.os }} | |
- name: set executable bit | |
shell: bash | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: | | |
chmod +x ./branch-asm | |
chmod +x ./master-asm | |
- name: disassembler on a binary | |
shell: bash | |
if: ${{ !cancelled() && matrix.os == 'ubuntu-latest' }} # linux only | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --bin sample sample::main 0 --disasm | |
- name: disassembler on a library | |
shell: bash | |
if: ${{ !cancelled() && matrix.os == 'ubuntu-latest' }} # linux only | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib sample::main 0 --disasm | |
- name: run disassembler directly on a file | |
shell: bash | |
if: ${{ !cancelled() && matrix.os == 'ubuntu-latest' }} # linux only | |
run: ./.github/check.sh --file sample/target/release/sample sample::main 0 | |
- name: Native version of cargo-show-asm (Intel ASM) | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib --intel sample::main --rust | |
- name: Native version of cargo-show-asm (Intel ASM) + native CPU | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib --native --intel sample::main --rust | |
- name: Native version of cargo-show-asm (Intel ASM) + native CPU + no default features | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh -vvv --manifest-path sample/Cargo.toml --lib --native --intel sample::main --rust --no-default-features | |
- name: Native version of cargo-show-asm (Intel ASM) + atom | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib --target-cpu atom --intel sample::main --rust | |
- name: Native version of cargo-show-asm with symbol mangling (Intel ASM) | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib --intel sample::main --rust --keep-mangled | |
- name: Native version of cargo-show-asm (LLVM) | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib --llvm sample::main | |
- name: Native version of cargo-show-asm with symbol mangling (LLVM) | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib --llvm --keep-mangled sample::main | |
- name: Native version of cargo-show-asm (LLVM Input) | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib --llvm-input sample::main | |
- name: Native version of cargo-show-asm (MIR) | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib --mir "main()" | |
- name: Crosscompiled version of cargo-show-asm (Intel ASM) | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample/Cargo.toml --lib --intel sample::main --target armv7-unknown-linux-gnueabihf | |
- name: Rlib project, AT&T asm | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample_rlib/Cargo.toml --att | |
- name: cdylib project | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample_cdylib/Cargo.toml add | |
- name: cdylib project, underscore prefix | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample_cdylib/Cargo.toml _mul | |
- name: merged functions simd | |
shell: bash | |
if: ${{ !cancelled() && matrix.os != 'macos-latest' }} # uses x86 primops | |
run: ./.github/check.sh --manifest-path sample_merged/Cargo.toml sample_merged::merged_0 --include-constants | |
- name: merged functions simd | |
shell: bash | |
if: ${{ !cancelled() && matrix.os != 'macos-latest' }} # uses x86 primops | |
run: ./.github/check.sh --manifest-path sample_merged/Cargo.toml sample_merged::merged_1 --include-constants | |
- name: merged functions extern c | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample_merged/Cargo.toml sample_merged::extern_c_0 | |
- name: merged functions extern c | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample_merged/Cargo.toml sample_merged::extern_c_1 | |
- name: merged functions plain | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample_merged/Cargo.toml sample_merged::plain_0 | |
- name: merged functions plain | |
shell: bash | |
if: ${{ !cancelled() }} | |
run: ./.github/check.sh --manifest-path sample_merged/Cargo.toml sample_merged::plain_1 |