Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
1da639d
amiga: split OS compatibility layer
reinauer May 21, 2026
e24328c
amiga: hide OS target conditionals
reinauer May 21, 2026
1e72834
amiga: scaffold OS4 vector frontend
reinauer May 21, 2026
241dcf0
amiga: map OS4 vectors to shared operations
reinauer May 21, 2026
f2a0277
amiga: finish read-only OS4 vector stubs
reinauer May 21, 2026
fff73ce
amiga: implement OS4 directory examine vector
reinauer May 21, 2026
baed658
amiga: fix default cross-compiler selection in Makefile
reinauer Jun 12, 2026
8e7c120
amiga: publish OS4 vector port as the handler port
reinauer Jun 12, 2026
94ebe05
amiga: route OS4 serial debug logging through DebugPrintF
reinauer Jun 12, 2026
c04e809
amiga: exit the packet loop on OS4 ACTION_SHUTDOWN
reinauer Jun 12, 2026
35d5444
amiga: fix OS4 media-change interrupt calling convention
reinauer Jun 12, 2026
2ee88ca
amiga: drop deprecated-declarations suppression for OS4
reinauer Jun 12, 2026
beef632
amiga: allocate DOS list nodes through the sys_compat boundary
reinauer Jun 12, 2026
3c46446
amiga: serialize OS4 vector callbacks and emulate direct packets
reinauer Jun 12, 2026
bda9871
amiga: add freestanding OS4 handler startup
reinauer Jun 13, 2026
b62ca8c
amiga: keep media state per handler
reinauer Jun 13, 2026
b80904d
amiga: probe OS4 CD units before mounting
reinauer Jun 13, 2026
da956aa
amiga: allocate OS4 locks through DOS
reinauer Jun 13, 2026
7302b60
amiga: complete OS4 Workbench vector semantics
reinauer Jun 13, 2026
f3448c4
amiga: keep OS4 packets on classic dispatcher
reinauer Jun 14, 2026
c7a46f5
amiga: use caller-owned IO requests for OS4 reads
reinauer Jun 14, 2026
f5951d3
docs: document AmigaOS 3 and 4 builds
reinauer Jun 14, 2026
62459a8
ci: build AmigaOS 4 handler artifacts
reinauer Jun 14, 2026
c99d428
release: publish AmigaOS 4 handler artifacts
reinauer Jun 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .github/workflows/ci-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,44 @@ jobs:
build/amiga-rom-test/ODFileSystem
build/host/tools/
if-no-files-found: error

build-amigaos4:
runs-on: ubuntu-latest
container: stefanreinauer/amigappc-gcc

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Mark git directory as safe
run: git config --global --add safe.directory '*'

- name: Add AmigaOS 4 toolchain to PATH
run: echo /opt/amigappc/bin >> "$GITHUB_PATH"

- name: Check AmigaOS 4 compiler
run: |
command -v ppc-amigaos-gcc
ppc-amigaos-gcc -dumpmachine

- name: Build AmigaOS 4 handler
run: |
make amiga \
CC=ppc-amigaos-gcc \
AMIGA_BUILD=build/amigaos4

- name: Build AmigaOS 4 test handler
run: |
make amiga-test \
CC=ppc-amigaos-gcc \
AMIGA_TEST_BUILD=build/amigaos4-test

- name: Upload AmigaOS 4 CI artifacts
uses: actions/upload-artifact@v4
with:
name: odfilesystem-amigaos4-build
path: |
build/amigaos4/ODFileSystem
build/amigaos4-test/ODFileSystem
if-no-files-found: error
99 changes: 85 additions & 14 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ env:
RELEASE_REF: ${{ github.event_name == 'workflow_dispatch' && format('refs/tags/{0}', github.event.inputs.tag) || github.ref }}

jobs:
build:
name: Build release artifacts
build-amigaos3:
name: Build AmigaOS 3 release artifacts
runs-on: ubuntu-latest
container: stefanreinauer/amiga-gcc:gcc-v13.3

Expand All @@ -44,7 +44,7 @@ jobs:
- name: Mark git directory as safe
run: git config --global --add safe.directory '*'

- name: Build release artifacts
- name: Build AmigaOS 3 release artifacts
env:
ODFS_GIT_VERSION: ${{ env.RELEASE_TAG }}
run: |
Expand All @@ -64,10 +64,10 @@ jobs:
cp build/amiga-rom-test/ODFileSystem dist/ODFileSystem-rom-test
cp build/amiga-test/ODFileSystem.adf dist/ODFileSystem.adf

- name: Upload release artifacts
- name: Upload AmigaOS 3 release artifacts
uses: actions/upload-artifact@v4
with:
name: release-artifacts
name: amigaos3-release-artifacts
path: |
dist/ODFileSystem
dist/ODFileSystem-test
Expand All @@ -76,17 +76,86 @@ jobs:
dist/ODFileSystem.adf
if-no-files-found: error

build-amigaos4:
name: Build AmigaOS 4 release artifacts
runs-on: ubuntu-latest
container: stefanreinauer/amigappc-gcc

steps:
- name: Validate release tag
run: |
case "${RELEASE_TAG}" in
v*) ;;
*)
echo "Release tag must start with v: ${RELEASE_TAG}" >&2
exit 1
;;
esac

- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ env.RELEASE_REF }}

- name: Mark git directory as safe
run: git config --global --add safe.directory '*'

- name: Add AmigaOS 4 toolchain to PATH
run: echo /opt/amigappc/bin >> "$GITHUB_PATH"

- name: Check AmigaOS 4 compiler
run: |
command -v ppc-amigaos-gcc
ppc-amigaos-gcc -dumpmachine

- name: Build AmigaOS 4 release artifacts
env:
ODFS_GIT_VERSION: ${{ env.RELEASE_TAG }}
run: |
make amiga \
CC=ppc-amigaos-gcc \
AMIGA_BUILD=build/amigaos4
make amiga-test \
CC=ppc-amigaos-gcc \
AMIGA_TEST_BUILD=build/amigaos4-test

- name: Collect AmigaOS 4 release files
run: |
set -eu
mkdir -p dist
cp build/amigaos4/ODFileSystem dist/ODFileSystem-amigaos4
cp build/amigaos4-test/ODFileSystem \
dist/ODFileSystem-amigaos4-test

- name: Upload AmigaOS 4 release artifacts
uses: actions/upload-artifact@v4
with:
name: amigaos4-release-artifacts
path: |
dist/ODFileSystem-amigaos4
dist/ODFileSystem-amigaos4-test
if-no-files-found: error

release:
name: Create GitHub draft release
runs-on: ubuntu-latest
needs: build
needs:
- build-amigaos3
- build-amigaos4

steps:
- name: Download build artifacts
- name: Download AmigaOS 3 build artifacts
uses: actions/download-artifact@v4
with:
name: amigaos3-release-artifacts
path: artifacts/amigaos3

- name: Download AmigaOS 4 build artifacts
uses: actions/download-artifact@v4
with:
name: release-artifacts
path: artifacts
name: amigaos4-release-artifacts
path: artifacts/amigaos4

- name: Create draft release
uses: softprops/action-gh-release@v2
Expand All @@ -96,8 +165,10 @@ jobs:
draft: true
generate_release_notes: true
files: |
artifacts/ODFileSystem
artifacts/ODFileSystem-test
artifacts/ODFileSystem-rom
artifacts/ODFileSystem-rom-test
artifacts/ODFileSystem.adf
artifacts/amigaos3/ODFileSystem
artifacts/amigaos3/ODFileSystem-test
artifacts/amigaos3/ODFileSystem-rom
artifacts/amigaos3/ODFileSystem-rom-test
artifacts/amigaos3/ODFileSystem.adf
artifacts/amigaos4/ODFileSystem-amigaos4
artifacts/amigaos4/ODFileSystem-amigaos4-test
Loading
Loading