Skip to content

Release 0.2.41

Release 0.2.41 #645

Workflow file for this run

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