# 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 # Temporary (2026-10-30): one update test fails only on this runner # and only inside the whole run (alone it passed here; locally it # passes even on two slow cores), and the gate's step log loses its # message. Run the CLI crate's suites first, in their own step, so # the message survives. - name: The CLI crate's tests, in their own step (temporary) run: cargo test -p ledger-cli --no-fail-fast - run: just check - name: What the build used if: always() run: df -h / | tail -1