ci(standards-build): build jouleclaw-rs on linux-arm64 without debuginfo #95
1 changed files with 21 additions and 3 deletions
24
.github/workflows/standards-build.yml
vendored
24
.github/workflows/standards-build.yml
vendored
|
|
@ -82,7 +82,7 @@ jobs:
|
|||
# failing for no apparent reason, check `df -h /mnt/lima-colima-txarm`
|
||||
# on the txarm VM before suspecting the code: a full cache volume
|
||||
# fails whatever happens to be building, not whatever changed.
|
||||
- { name: jouleclaw-rs, dir: jouleclaw/jouleclaw-rs, runner: linux-arm64, rustflags: "-C target-feature=+fp16" }
|
||||
- { name: jouleclaw-rs, dir: jouleclaw/jouleclaw-rs, runner: linux-arm64, rustflags: "-C target-feature=+fp16", cache_suffix: "-nodebug" }
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
|
|
@ -124,6 +124,24 @@ jobs:
|
|||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal
|
||||
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
||||
|
||||
# jouleclaw-rs is the CAPACITY entry above. Linux embeds full DWARF in every
|
||||
# test binary, so with default debuginfo its aarch64 test target outgrows
|
||||
# the ~15 GB left on the shared txarm volume and the link fails with
|
||||
# "No space left on device" (reproduced with the same toolchain, flags and
|
||||
# image). Without debuginfo the same target is ~6 GB and the whole suite
|
||||
# passes. Panic messages keep their file:line: that comes from the panic
|
||||
# location, not from DWARF.
|
||||
#
|
||||
# Set through $GITHUB_ENV rather than a matrix field on purpose: a matrix
|
||||
# field would hand every other job CARGO_PROFILE_DEV_DEBUG="", which cargo
|
||||
# can reject. `cache_suffix` gives this job a fresh cache namespace so it
|
||||
# cannot restore a full-debuginfo target and hold both builds at once;
|
||||
# for every other job the suffix is empty and its key string is unchanged.
|
||||
- name: Trim debuginfo (arm64 jouleclaw)
|
||||
if: matrix.name == 'jouleclaw-rs'
|
||||
shell: bash
|
||||
run: echo "CARGO_PROFILE_DEV_DEBUG=0" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Cache cargo registry + target
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
|
|
@ -131,9 +149,9 @@ jobs:
|
|||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
${{ matrix.dir }}/target
|
||||
key: standards-${{ matrix.name }}-${{ hashFiles(format('{0}/Cargo.lock', matrix.dir), 'rust-toolchain.toml') }}
|
||||
key: standards-${{ matrix.name }}${{ matrix.cache_suffix }}-${{ hashFiles(format('{0}/Cargo.lock', matrix.dir), 'rust-toolchain.toml') }}
|
||||
restore-keys: |
|
||||
standards-${{ matrix.name }}-
|
||||
standards-${{ matrix.name }}${{ matrix.cache_suffix }}-
|
||||
|
||||
# --all-targets is load-bearing: a plain `cargo check` does not build test
|
||||
# targets, and smart-byte's dev-dependencies drifted independently of its
|
||||
|
|
|
|||
Loading…
Reference in a new issue