diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index a667470..0245433 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -13,10 +13,8 @@ env: RUSTFLAGS: "-Dwarnings" jobs: - build: - + clippy: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v4 @@ -32,7 +30,17 @@ jobs: run: ./generate-binding.sh - name: check that generated files did not change run: output=$(git status --porcelain) && [ -z "$output" ] - + + build-stable: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Update repos + run: sudo apt-get update -qq + - name: Install toolchain + run: sudo apt-get install -qy cargo rust-clippy liblzma-dev gcc make pkgconf + - name: build run: cargo build @@ -41,17 +49,40 @@ jobs: - name: build example -- glibc debug run: cd example && make clean && make TARGET=aarch64-unknown-linux-gnu PROFILE=debug - - name: install musl dependencies - run: sudo apt-get install -y musl-dev musl-tools rustup + build-musl: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Update repos + run: sudo apt-get update -qq + - name: Install toolchain + run: sudo apt-get install -qy liblzma-dev gcc make pkgconf musl-dev musl-tools rustup - name: install musl rust target - run: rustup toolchain install stable-aarch64-unknown-linux-musl + run: rustup toolchain install aarch64-unknown-linux-musl --no-self-update + - name: build example -- musl release run: cd example && make clean && make TARGET=aarch64-unknown-linux-musl PROFILE=release MUSL=1 CARGO="rustup run stable cargo" - name: build example -- musl debug run: cd example && make clean && make TARGET=aarch64-unknown-linux-musl PROFILE=debug MUSL=1 CARGO="rustup run stable cargo" - - name: install unstable rust - run: rustup toolchain install nightly-aarch64-unknown-linux-gnu && rustup toolchain install nightly-aarch64-unknown-linux-musl + build-size: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Update repos + run: sudo apt-get update -qq + - name: Install toolchain + run: sudo apt-get install -qy liblzma-dev gcc make pkgconf musl-dev musl-tools rustup + - name: install rust nightly + run: rustup default nightly + + - name: install musl rust target + run: rustup toolchain install aarch64-unknown-linux-musl --no-self-update + - name: install gnu rust target + run: rustup toolchain install aarch64-unknown-linux-gnu --no-self-update + - name: build example -- glibc size-optimized run: cd example && make clean && make TARGET=aarch64-unknown-linux-gnu PROFILE=size-optimized CARGO="rustup run nightly cargo" - name: build example -- musl size-optimized