Merge pull request #4 from sigilante/test/ska-op2-gaps #58
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: CI | |
| on: | |
| push: | |
| branches: ["**"] | |
| pull_request: | |
| branches: ["**"] | |
| jobs: | |
| build-and-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install toolchain | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt-get install -y \ | |
| gcc-aarch64-linux-gnu \ | |
| binutils-aarch64-linux-gnu \ | |
| python3 \ | |
| ninja-build libglib2.0-dev libpixman-1-dev libslirp-dev | |
| - name: Cache QEMU build | |
| id: cache-qemu | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.local/qemu | |
| key: qemu-9.2.0-${{ runner.os }}-${{ runner.arch }} | |
| - name: Build QEMU 9.2.0 from source | |
| if: steps.cache-qemu.outputs.cache-hit != 'true' | |
| run: | | |
| wget -q https://download.qemu.org/qemu-9.2.0.tar.xz | |
| tar xf qemu-9.2.0.tar.xz | |
| cd qemu-9.2.0 | |
| ./configure \ | |
| --prefix=$HOME/.local/qemu \ | |
| --target-list=aarch64-softmmu \ | |
| --disable-docs \ | |
| --disable-user | |
| make -j$(nproc) | |
| make install | |
| - name: Add QEMU to PATH | |
| run: echo "$HOME/.local/qemu/bin" >> $GITHUB_PATH | |
| - name: Toolchain versions | |
| run: | | |
| aarch64-linux-gnu-gcc --version | |
| qemu-system-aarch64 --version | |
| - name: Build kernel | |
| run: | | |
| make CROSS=aarch64-linux-gnu- | |
| ls -lh kernel8.elf kernel8.img | |
| - name: QEMU diagnostics | |
| run: | | |
| echo "=== QEMU machines ===" | |
| qemu-system-aarch64 -machine help 2>&1 | grep -i raspi | |
| echo "=== Boot test (raspi4b, 5s, stderr visible) ===" | |
| echo "" | timeout 5 qemu-system-aarch64 \ | |
| -machine raspi4b -kernel kernel8.img \ | |
| -display none -nographic 2>&1 || true | |
| - name: jam.py self-tests | |
| run: python3 tools/jam.py test | |
| - name: Forth/Nock unit tests (194 tests) | |
| run: bash tests/run_tests.sh | |
| - name: Jet benchmarks (informational) | |
| run: bash tests/run_bench.sh | |
| - name: Kernel boot integration tests (5 kernels) | |
| run: bash tests/kernel-boot.sh --verbose |