Skip to content

Refresh SDK README for current release state #76

Refresh SDK README for current release state

Refresh SDK README for current release state #76

Workflow file for this run

# 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