Skip to content

CI refactor

CI refactor #595

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@v2
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
- shell: bash
run: mv ./target/debug/cargo-asm ./cargo-branch
- name: Checkout master
uses: actions/checkout@v4
with:
clean: false
ref: master
- name: Compile master
run: cargo build --all-features --bin cargo-asm
- shell: bash
run: mv ./target/debug/cargo-asm ./cargo-master
- name: Upload binaries
uses: actions/upload-artifact@v4
with:
name: binaries
path: |
cargo-master
cargo-branch
compare:
needs: build
strategy:
matrix:
os: ["ubuntu-latest"] # "windows-latest", "macos-latest"]
name: ${{ matrix.os }} integration
runs-on: ${{ matrix.os }}
steps:
- name: Install rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: rustfmt clippy rust-src
targets: armv7-unknown-linux-gnueabihf
- name: Download math result for job 2
uses: actions/download-artifact@v4
with:
name: homework_final
- name: run with branch
run: cargo-branch--manifest-path sample/Cargo.toml --lib --llvm sample::main
- name: run with master
run: cargo-master --manifest-path sample/Cargo.toml --lib --llvm sample::main
# jobs:
# linux:
# name: Tests on Linux
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repo
# uses: actions/checkout@v3
#
# - name: Install rust toolchain
# uses: dtolnay/rust-toolchain@stable
# with:
# toolchain: stable
# components: rustfmt clippy rust-src
# targets: armv7-unknown-linux-gnueabihf
#
# - name: Build all the things
# run: cargo build --tests
#
# - name: Run unit tests
# run: cargo test --all-features
#
# - name: Clippy
# run: cargo clippy -- -D clippy::disallowed_macros
#
# - name: Check formatting
# run: cargo fmt --all --check
#
# - name: run disassembler on a binary
# run: cargo run --features disasm -- --manifest-path sample/Cargo.toml --bin sample sample::main 0 --disasm
#
# - name: run disassembler on a library
# run: cargo run --features disasm -- --manifest-path sample/Cargo.toml --lib sample::main 0 --disasm
#
# - name: run disassembler directly on a file
# run: cargo run --features disasm -- --file sample/target/release/sample sample::main 0
#
# - name: Native version of cargo-show-asm (Intel ASM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --intel sample::main --rust
#
# - name: Native version of cargo-show-asm (Intel ASM) + native CPU
# run: cargo run -- --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
# run: cargo run -- -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
# run: cargo run -- --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)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --intel sample::main --rust --keep-mangled
#
# - name: Native version of cargo-show-asm (LLVM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --llvm sample::main
#
# - name: Native version of cargo-show-asm with symbol mangling (LLVM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --llvm --keep-mangled sample::main
#
# - name: Native version of cargo-show-asm (LLVM Input)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --llvm-input sample::main
#
# - name: Native version of cargo-show-asm (MIR)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --mir "main()"
#
# - name: Crosscompiled version of cargo-show-asm (Intel ASM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --intel sample::main --target armv7-unknown-linux-gnueabihf
#
# - name: Rlib project, AT&T asm
# run: cargo run -- --manifest-path sample_rlib/Cargo.toml --att
#
# - name: cdylib project
# run: cargo run -- --manifest-path sample_cdylib/Cargo.toml add
#
# - name: cdylib project, underscore prefix
# run: cargo run -- --manifest-path sample_cdylib/Cargo.toml _mul
#
# - name: merged functions
# run: |
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::merged_0
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::merged_1
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::one_num
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::one_plus_one
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::two_num
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::two_minus_one
#
# windows:
# runs-on: windows-latest
# name: Tests on windows
# steps:
# - name: Checkout repo
# uses: actions/checkout@v3
#
# - name: Install rust toolchain
# uses: dtolnay/rust-toolchain@stable
# with:
# toolchain: stable
# components: rustfmt clippy rust-src
# targets: armv7-unknown-linux-gnueabihf
#
# - name: Build all the things
# run: cargo build --tests
#
# - name: Run unit tests
# run: cargo test --all-features
#
# - name: Clippy
# run: cargo clippy -- -D clippy::disallowed_macros
#
# - name: Check formatting
# run: cargo fmt --all --check
#
# - name: Native version of cargo-show-asm (Intel ASM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --intel sample::main --rust
#
# - name: Native version of cargo-show-asm (Intel ASM) + native CPU
# run: cargo run -- --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
# run: cargo run -- -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
# run: cargo run -- --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)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --intel sample::main --rust --keep-mangled
#
# - name: Native version of cargo-show-asm (LLVM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --llvm sample::main
#
# - name: Native version of cargo-show-asm with symbol mangling (LLVM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --llvm --keep-mangled sample::main
#
# - name: Native version of cargo-show-asm (LLVM Input)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --llvm-input sample::main
#
# - name: Native version of cargo-show-asm (MIR)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --mir "main()"
#
# - name: Crosscompiled version of cargo-show-asm (Intel ASM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --intel sample::main --target armv7-unknown-linux-gnueabihf
#
# - name: Rlib project, AT&T asm
# run: cargo run -- --manifest-path sample_rlib/Cargo.toml --att
#
# - name: cdylib project, everything
# run: cargo run -- --manifest-path sample_cdylib/Cargo.toml --everything
#
# - name: cdylib project
# run: cargo run -- --manifest-path sample_cdylib/Cargo.toml add
#
# - name: cdylib project, underscore prefix
# run: cargo run -- --manifest-path sample_cdylib/Cargo.toml _mul
#
# - name: merged functions
# run: |
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::merged_0
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::merged_1
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::one_num
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::one_plus_one
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::two_num
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::two_minus_one
#
# macos:
# runs-on: macos-latest
# name: Tests on MacOS
# steps:
# - name: Checkout repo
# uses: actions/checkout@v3
#
# - name: Install rust toolchain
# uses: dtolnay/rust-toolchain@stable
# with:
# toolchain: stable
# components: rustfmt clippy rust-src
# targets: armv7-unknown-linux-gnueabihf
#
# - name: Build all the things
# run: cargo build --tests
#
# - name: Run unit tests
# run: cargo test --all-features
#
# - name: Clippy
# run: cargo clippy -- -D clippy::disallowed_macros
#
# - name: Check formatting
# run: cargo fmt --all --check
#
# - name: Native version of cargo-show-asm (Intel ASM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --intel sample::main --rust
#
# - name: Native version of cargo-show-asm (Intel ASM) + native CPU
# run: cargo run -- --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
# run: cargo run -- -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
# run: cargo run -- --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)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --intel sample::main --rust --keep-mangled
#
# - name: Native version of cargo-show-asm (LLVM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --llvm sample::main
#
# - name: Native version of cargo-show-asm with symbol mangling (LLVM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --llvm --keep-mangled sample::main
#
# - name: Native version of cargo-show-asm (LLVM Input)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --llvm-input sample::main
#
# - name: Native version of cargo-show-asm (MIR)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --mir "main()"
#
# - name: Crosscompiled version of cargo-show-asm (Intel ASM)
# run: cargo run -- --manifest-path sample/Cargo.toml --lib --intel sample::main --target armv7-unknown-linux-gnueabihf
#
# - name: Rlib project, AT&T asm
# run: cargo run -- --manifest-path sample_rlib/Cargo.toml --att
#
# - name: cdylib project
# run: cargo run -- --manifest-path sample_cdylib/Cargo.toml add
#
# - name: cdylib project, underscore prefix
# run: cargo run -- --manifest-path sample_cdylib/Cargo.toml _mul
#
# - name: merged functions
# run: |
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::one_num
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::one_plus_one
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::two_num
# cargo run -- --manifest-path sample_merged/Cargo.toml sample_merged::two_minus_one