Skip to content

release: keep the page minimal -- one-line body pointing at CHANGELOG #47

release: keep the page minimal -- one-line body pointing at CHANGELOG

release: keep the page minimal -- one-line body pointing at CHANGELOG #47

Workflow file for this run

name: Build verification
on:
push:
branches: [main]
pull_request:
branches: [main]
workflow_dispatch:
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'
jobs:
build:
name: build (${{ matrix.console }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- console: gcn
image: ghcr.io/extremscorner/libogc2:latest
artifacts: |
gcn/joypad-tester-gamecube.dol
gcn/joypad-tester-wii.dol
gcn/opening.bnr
- console: gba
image: devkitpro/devkitarm:latest
artifacts: |
gba/build/joypad/joypad_mb.gba
gba/build/joypad/joypad_payload.c
gba/build/tester/tester_mb.gba
gba/build/tester/tester_payload.c
- console: pce
# HuC is built from source inside pce/buildtools/Dockerfile,
# so no upstream image — see the Build (PC Engine) step.
image: ""
artifacts: |
pce/build/joypad-tester.pce
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install Pillow (for banner generation)
if: matrix.console == 'gcn'
run: pip install --quiet Pillow
- name: Generate banner
if: matrix.console == 'gcn'
working-directory: ${{ matrix.console }}
run: python3 buildtools/make_banner.py opening.bnr
- name: Generate screensaver logo header
if: matrix.console == 'gcn'
working-directory: ${{ matrix.console }}
run: python3 buildtools/make_logo.py
- name: Build (gamecube target)
if: matrix.console == 'gcn'
run: |
docker run --rm \
-v "${{ github.workspace }}":/workspace \
-w /workspace/${{ matrix.console }} \
-u "$(id -u):$(id -g)" \
${{ matrix.image }} \
bash -c "apt-get install -y -qq --no-install-recommends -t bookworm-backports xorriso 2>/dev/null; TARGET_CONSOLE=gamecube make"
- name: Build (wii target)
if: matrix.console == 'gcn'
run: |
docker run --rm \
-v "${{ github.workspace }}":/workspace \
-w /workspace/${{ matrix.console }} \
-u "$(id -u):$(id -g)" \
${{ matrix.image }} \
bash -c "TARGET_CONSOLE=wii make"
- name: Build (GBA — both variants)
if: matrix.console == 'gba'
run: |
docker run --rm \
-v "${{ github.workspace }}":/workspace \
-w /workspace/gba \
-u "$(id -u):$(id -g)" \
${{ matrix.image }} \
make
- name: Build (PC Engine)
if: matrix.console == 'pce'
run: |
docker build -t joypad-tester-huc:ci pce/buildtools/
docker run --rm \
-v "${{ github.workspace }}":/workspace \
-w /workspace/pce \
-u "$(id -u):$(id -g)" \
joypad-tester-huc:ci \
make
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.console }}-${{ github.sha }}
path: ${{ matrix.artifacts }}
if-no-files-found: error
retention-days: 7