Files
wanderbooks/.github/workflows/check.yml
T
swaitsandClaude Fable 5.1 bc82ccbecf
check / check (push) Canceled after 0s
check / portable (macos-latest) (push) Canceled after 0s
check / portable (windows-latest) (push) Canceled after 0s
two-user / two-user (push) Canceled after 0s
ci: the Windows job gates (experimental: false) (P11c)
The port is in; the portable (windows-latest) job no longer hides behind
continue-on-error. Its first run is the first run of every Windows arm
(see docs/testing.md "P11c"), so the EM should watch that run before
merging.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HS8WZziDnyxunC23MUxrLp
2026-10-29 15:09:15 -06:00

77 lines
2.9 KiB
YAML

# Every change: format, clippy and rustdoc with zero warnings, every test.
# Tools come from mise.toml, the same as on a laptop.
name: check
on:
push:
pull_request:
# A newer push to the same branch makes an older check pointless: it is
# cancelled, so only the newest reports.
concurrency:
group: check-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
runs-on: ubuntu-24.04
# The runner's disk is small (the first run after P6 landed died in
# the linker: "No space left on device", ld killed by SIGBUS). A fresh
# runner gains nothing from incremental caches, and line tables keep
# file:line in a panic's backtrace at a fraction of full debug info.
env:
CARGO_INCREMENTAL: "0"
CARGO_PROFILE_DEV_DEBUG: line-tables-only
CARGO_PROFILE_TEST_DEBUG: line-tables-only
steps:
- uses: actions/checkout@v4
- name: Room for the build (the image ships toolchains we never use)
run: |
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc \
/opt/hostedtoolcache/CodeQL /usr/local/.ghcup
df -h / | tail -1
- uses: jdx/mise-action@v2
- name: GUI build dependencies
run: sudo apt-get update && sudo apt-get install -y libxkbcommon-dev libgtk-3-dev
- run: just check
- name: What the build used
if: always()
run: df -h / | tail -1
# The destination is one installation for macOS, Windows and Linux (D-56,
# P11a step 0): the workspace must build and pass its tests on each, not
# only here. `just check` (fmt, clippy, rustdoc, proofs' friends) stays
# the Linux job's; these run the build and the tests. The job tells
# which OS a failure is on; neither is allowed to hide the other.
portable:
name: portable (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
experimental: false
- os: windows-latest
experimental: false
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
# Same disk discipline as above: no incremental caches, line tables only.
env:
CARGO_INCREMENTAL: "0"
CARGO_PROFILE_DEV_DEBUG: line-tables-only
CARGO_PROFILE_TEST_DEBUG: line-tables-only
steps:
- uses: actions/checkout@v4
- name: Rust (the version mise.toml pins)
shell: bash
run: rustup toolchain install 1.99 --profile minimal && rustup default 1.99
- name: Room for the build
shell: bash
run: df -h . | tail -1
- name: The server-only build (no viewer)
run: cargo build -p ledger-cli --no-default-features
- name: Everything compiles
run: cargo build --workspace --all-targets
- name: Tests
run: cargo test --workspace
- name: What the build used
if: always()
shell: bash
run: df -h . | tail -1