Refresh SDK README for current release state #76
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
| # Core SDK CI: the host unit suite and the AmigaOS 3 m68k build + package. | |
| # (The accelerated amissl.library has its own, slower workflow: | |
| # build-amissl-provider.yml.) | |
| name: CI | |
| on: | |
| push: | |
| branches: ['**'] | |
| pull_request: | |
| workflow_dispatch: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| lint: | |
| name: lint (actionlint + shellcheck) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: actionlint (workflow files) | |
| run: docker run --rm -v "$PWD":/repo:ro -w /repo rhysd/actionlint:latest -color | |
| - name: shellcheck (shell scripts, errors only) | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt-get install -y -qq shellcheck | |
| files=$(git ls-files '*.sh') | |
| if [ -n "$files" ]; then | |
| echo "$files" | xargs shellcheck --severity=error | |
| fi | |
| abi-mirror: | |
| name: ABI mirror check (SDK vs firmware) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout SDK | |
| uses: actions/checkout@v4 | |
| # The firmware repo is public; clone only the one header we compare against | |
| # (shallow, no history) so the check sees the current firmware opcodes. | |
| - name: Checkout firmware (for its mailbox ABI header) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: BlitterStudio/zz9000-firmware | |
| path: zz9000-firmware | |
| fetch-depth: 1 | |
| - name: Compare mailbox ABI constants | |
| run: | | |
| sh scripts/check-abi-mirror.sh \ | |
| include/zz9k/abi.h \ | |
| zz9000-firmware/ZZ9000_proto.sdk/ZZ9000OS/src/sdk_mailbox.h | |
| host-tests: | |
| name: host tests (cmake + ctest) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| # OpenSSL 3 dev headers turn on the provider unit tests (provider_*, | |
| # provider_tls_handshake_test); without them CMake silently skips that set. | |
| - name: Install OpenSSL 3 headers | |
| run: | | |
| sudo apt-get update -qq | |
| sudo apt-get install -y -qq libssl-dev | |
| - name: Configure | |
| run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug | |
| - name: Build | |
| run: cmake --build build --parallel | |
| - name: Test | |
| run: ctest --test-dir build --output-on-failure | |
| m68k-build: | |
| name: m68k build + package (AmigaOS 3) | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| # Invoke via `sh` so a missing executable bit (Windows checkouts drop it) | |
| # never breaks the build. The script runs the m68k toolchain in Docker and | |
| # hands its root-owned outputs back to the runner for packaging. | |
| - name: Build m68k payloads (Docker) | |
| run: sh scripts/build-m68k-amigaos.sh | |
| - name: Package AmigaOS 3 SDK | |
| run: sh scripts/package-m68k-amigaos.sh --skip-build | |
| - name: Upload AmigaOS 3 package | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: zz9000-sdk-amigaos3 | |
| path: build/package/amigaos3/ | |
| if-no-files-found: error |