Skip to content

Add cargo-bloat-musl.yml #2

Add cargo-bloat-musl.yml

Add cargo-bloat-musl.yml #2

name: Rust (cargo bloat, musl)
"on":
workflow_dispatch:
push:
branches: [master]
pull_request:
branches: [master]
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -D warnings
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
cargo-bloat-version:
- "0.11.0"
steps:
- uses: actions/checkout@v4
- name: cargo version
run: cargo --version
- name: add target x86_64-unknown-linux-musl
run: rustup target add x86_64-unknown-linux-musl
- name: install cargo-bloat (v${{ matrix.cargo-bloat-version }})
run: cargo install cargo-bloat --version ${{ matrix.cargo-bloat-version }}
- name: cargo bloat --time (release)
run: cargo bloat --profile=release-cargo-bloat --time --jobs 1 --target x86_64-unknown-linux-musl
- name: cargo bloat (display, release)
run: cargo bloat --profile=release-cargo-bloat --target x86_64-unknown-linux-musl
- name: cargo bloat (display, per-crate, release)
run: cargo bloat --profile=release-cargo-bloat --crates --target x86_64-unknown-linux-musl
- name: cargo bloat (testing, release)
# Size <= 1MiB?
run: cargo bloat --profile=release-cargo-bloat --message-format json --target x86_64-unknown-linux-musl | jq --exit-status '."file-size" <= 1048576'
- name: dependencies (readelf)
run: readelf --wide --dynamic target/x86_64-unknown-linux-musl/release-cargo-bloat/clavem | grep -E 'FUNC|OBJECT' | wc -l
- name: dependencies (objdump)
run: objdump --private-headers target/x86_64-unknown-linux-musl/release-cargo-bloat/clavem | grep NEEDED
- name: dependencies (ldd)
run: ldd target/x86_64-unknown-linux-musl/release-cargo-bloat/clavem