kernel size: rework kernel-image-size into a sound two-ended interval #162
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: build | |
| on: | |
| push: | |
| branches: [ "master" ] | |
| pull_request: | |
| branches: [ "master" ] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Install dependencies | |
| # shellcheck lets `make check`'s lint guards run tests/check-shellcheck | |
| # over all shipped shell scripts (extra/ + tests/); it soft-skips when absent. | |
| run: sudo apt-get update && sudo apt-get install -y zlib1g-dev gcc-i686-linux-gnu shellcheck | |
| - name: Build | |
| run: make | |
| - name: Run unit + integration tests | |
| run: make check | |
| # Build the 32-bit x86 binary too (auto-static when cross-compiling), so the | |
| # end-to-end step also covers the x86_32 fixture. If the static link is | |
| # unavailable the i686 fixture just skips below — never fatal. | |
| - name: Build i686 | |
| run: make build CC=i686-linux-gnu-gcc || true | |
| # End-to-end over the REAL binary on the x86 fixtures, run NATIVELY (no | |
| # qemu): the only CI coverage of main() + the engine bridge + the renderers, | |
| # which `make check` compiles out under -DKASLD_TESTING. Foreign-arch | |
| # fixtures need qemu and are skipped here (the cross job build-checks them). | |
| - name: End-to-end replay (x86, native) | |
| run: KASLD_NATIVE=1 tests/replay tests/fixtures/x86_64/* tests/fixtures/x86_32/* | |
| # Compile- and test-gate every released arch on push/PR (matrix + steps in | |
| # _cross-build.yml, shared with release.yml so the arch set can't drift). | |
| # run_test_cross runs the engine tests for each arch under qemu-user, so | |
| # arch-gated rule bodies are verified — not just compiled — on every push. | |
| # Pinned for deterministic PR builds + a stable cache; bump periodically. | |
| # release.yml tracks the latest cross-tools release instead. | |
| cross-compile: | |
| uses: ./.github/workflows/_cross-build.yml | |
| with: | |
| toolchain_version: '20260515' | |
| package: false | |
| run_test_cross: true |