Fix Android for 4.3 and 4.4, add Android fixes to changelog. #919
Workflow file for this run
This file contains 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: Regression tests | |
env: | |
MZXDEPS_DEBIAN_SDL2: "zlib1g-dev libpng-dev libogg-dev libvorbis-dev libsdl2-dev" | |
MZXDEPS_DEBIAN_MISC: "libsdl1.2-dev libegl1-mesa-dev libmikmod-dev libopenmpt-dev" | |
MZXDEPS_MACOS: "libpng libogg libvorbis sdl2" | |
MZX_MAKE: "make -j4" | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
workflow_dispatch: | |
jobs: | |
# | |
# Platform variants and distribution packages. | |
# | |
unix: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install dependencies | |
run: sudo apt update && sudo apt install -y --no-install-recommends $MZXDEPS_DEBIAN_SDL2 | |
- uses: actions/checkout@v4 | |
- name: Configure | |
run: ./config.sh --platform unix --enable-release --enable-sdlaccel | |
- name: Build | |
run: $MZX_MAKE | |
- name: Run tests | |
run: $MZX_MAKE test | |
- name: Install | |
run: sudo $MZX_MAKE install V=1 | |
- name: Check install | |
run: command -v megazeux && [ -f "/usr/share/doc/megazeux/LICENSE" ] && [ -f "/etc/megazeux-config" ] | |
- name: Uninstall | |
run: sudo $MZX_MAKE uninstall V=1 | |
- name: Check uninstall | |
run: true && [ ! -f "/usr/bin/megazeux" ] && [ ! -f "/usr/share/doc/megazeux/LICENSE" ] && [ ! -f "/etc/megazeux-config" ] | |
- name: Package source .tar.xz | |
run: make source | |
unix-portable: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install dependencies | |
run: sudo apt update && sudo apt install -y --no-install-recommends $MZXDEPS_DEBIAN_SDL2 | |
- uses: actions/checkout@v4 | |
- name: Configure | |
run: ./config.sh --platform unix-devel --enable-release --enable-sdlaccel | |
- name: Build | |
run: $MZX_MAKE | |
- name: Run tests | |
run: $MZX_MAKE test | |
- name: Package linux-amd64 .zip | |
run: make archive | |
unix-misc: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install dependencies | |
run: sudo apt update && sudo apt install -y --no-install-recommends $MZXDEPS_DEBIAN_SDL2 $MZXDEPS_DEBIAN_MISC | |
- uses: actions/checkout@v4 | |
- name: Configure (SDL 1.2) | |
run: ./config.sh --platform unix-devel --enable-release --enable-sdl1 | |
- name: Build (SDL 1.2) | |
run: $MZX_MAKE | |
- name: Run tests (SDL 1.2) | |
run: $MZX_MAKE test | |
- name: Distclean (SDL 1.2) | |
run: $MZX_MAKE distclean | |
- name: Configure (EGL/X11) | |
run: ./config.sh --platform unix-devel --enable-release --disable-sdl --enable-egl | |
- name: Build (EGL/X11) | |
run: $MZX_MAKE | |
# Note: EGL mzxrun builds can't run headless, unit tests only. | |
- name: Run tests (EGL/X11) | |
run: $MZX_MAKE unit | |
- name: Distclean (EGL/X11) | |
run: $MZX_MAKE distclean | |
- name: Configure (ModPlug) | |
run: ./config.sh --platform unix-devel --enable-release --enable-modplug | |
- name: Build (Modplug) | |
run: $MZX_MAKE | |
- name: Run tests (Modplug) | |
run: $MZX_MAKE test | |
- name: Distclean (Modplug) | |
run: $MZX_MAKE distclean | |
- name: Configure (MikMod) | |
run: ./config.sh --platform unix-devel --enable-release --enable-mikmod | |
- name: Build (MikMod) | |
run: $MZX_MAKE | |
- name: Run tests (MikMod) | |
run: $MZX_MAKE test | |
- name: Distclean (MikMod) | |
run: $MZX_MAKE distclean | |
- name: Configure (OpenMPT) | |
run: ./config.sh --platform unix-devel --enable-release --enable-openmpt | |
- name: Build (OpenMPT) | |
run: $MZX_MAKE | |
- name: Run tests (OpenMPT) | |
run: $MZX_MAKE test | |
- name: Distclean (OpenMPT) | |
run: $MZX_MAKE distclean | |
darwin-arm64: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: brew install $MZXDEPS_MACOS | |
- name: Configure (darwin-devel) | |
run: ./config.sh --platform darwin-devel --prefix /opt/homebrew --enable-release --enable-sdlaccel | |
- name: Build (darwin-devel) | |
run: $MZX_MAKE | |
- name: Run tests (darwin-devel) | |
run: $MZX_MAKE test | |
darwin-x86_64: | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: brew install $MZXDEPS_MACOS | |
- name: Configure (darwin-devel) | |
run: ./config.sh --platform darwin-devel --prefix /usr/local --enable-release --enable-sdlaccel | |
- name: Build (darwin-devel) | |
run: $MZX_MAKE | |
- name: Run tests (darwin-devel) | |
run: $MZX_MAKE test | |
MSYS2-MINGW64: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Setup msys2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW64 | |
update: true | |
install: >- | |
base-devel git zip | |
mingw-w64-x86_64-gcc mingw-w64-x86_64-zlib mingw-w64-x86_64-libpng | |
mingw-w64-x86_64-libogg mingw-w64-x86_64-libvorbis mingw-w64-x86_64-SDL2 | |
- uses: actions/checkout@v4 | |
- name: Configure x64 | |
run: ./config.sh --platform win64 --enable-release | |
- name: Build x64 | |
run: $MZX_MAKE | |
- name: Test x64 | |
run: $MZX_MAKE test | |
- name: Package x64 .zip | |
run: make archive | |
MSYS2-MINGW32: | |
runs-on: windows-latest | |
defaults: | |
run: | |
shell: msys2 {0} | |
steps: | |
- name: Setup msys2 | |
uses: msys2/setup-msys2@v2 | |
with: | |
msystem: MINGW32 | |
update: true | |
install: >- | |
base-devel git zip | |
mingw-w64-i686-gcc mingw-w64-i686-zlib mingw-w64-i686-libpng | |
mingw-w64-i686-libogg mingw-w64-i686-libvorbis mingw-w64-i686-SDL2 | |
- uses: actions/checkout@v4 | |
- name: Configure x86 | |
run: ./config.sh --platform win32 --enable-release | |
- name: Build x86 | |
run: $MZX_MAKE | |
- name: Test x86 | |
run: $MZX_MAKE test | |
- name: Package x86 .zip | |
run: make archive | |
AArch64-Switch: | |
runs-on: ubuntu-latest | |
container: devkitpro/devkita64 | |
steps: | |
- run: echo "PATH=$DEVKITPRO/devkitA64/bin:$PATH" >> $GITHUB_ENV | |
- uses: actions/checkout@v4 | |
- name: Configure Switch | |
run: arch/switch/CONFIG.SWITCH | |
- name: Build Switch | |
run: $MZX_MAKE | |
- name: Package Switch .zip | |
run: make archive | |
ARM-3DS: | |
runs-on: ubuntu-latest | |
container: devkitpro/devkitarm | |
steps: | |
- run: echo "PATH=$DEVKITPRO/devkitARM/bin:$PATH" >> $GITHUB_ENV | |
- uses: actions/checkout@v4 | |
- name: Configure 3DS | |
run: arch/3ds/CONFIG.3DS | |
- name: Build 3DS | |
run: $MZX_MAKE | |
- name: Package 3DS .zip | |
run: make archive | |
ARM-NDS: | |
runs-on: ubuntu-latest | |
container: devkitpro/devkitarm:20241104 | |
steps: | |
- run: echo "PATH=$DEVKITPRO/devkitARM/bin:$PATH" >> $GITHUB_ENV | |
- uses: actions/checkout@v4 | |
- name: Configure NDS | |
run: arch/nds/CONFIG.NDS | |
- name: Build NDS | |
run: $MZX_MAKE | |
- name: Package NDS .zip | |
run: make archive | |
ARM-NDS-BlocksDS: | |
runs-on: ubuntu-latest | |
container: skylyrac/blocksds:slim-latest | |
steps: | |
- name: Install dependencies | |
run: apt update && apt install -y --no-install-recommends zip | |
- name: Install target dependencies | |
run: wf-pacman -Syu --noconfirm && wf-pacman -S --noconfirm toolchain-gcc-arm-none-eabi-zlib | |
- run: echo "BLOCKSDS=/opt/blocksds/core" >> $GITHUB_ENV | |
- uses: actions/checkout@v4 | |
- name: Configure NDS/BlocksDS | |
run: arch/nds-blocksds/CONFIG.NDS | |
- name: Build NDS/BlocksDS | |
run: $MZX_MAKE | |
- name: Package NDS/BlocksDS .zip | |
run: make archive | |
PowerPC-Wii: | |
runs-on: ubuntu-latest | |
container: devkitpro/devkitppc | |
steps: | |
- run: echo "PATH=$DEVKITPRO/devkitPPC/bin:$PATH" >> $GITHUB_ENV | |
- uses: actions/checkout@v4 | |
- name: Configure Wii | |
run: arch/wii/CONFIG.WII | |
- name: Build Wii | |
run: $MZX_MAKE | |
- name: Package Wii .zip | |
run: make archive | |
PowerPC-WiiU: | |
runs-on: ubuntu-latest | |
container: devkitpro/devkitppc | |
steps: | |
- run: echo "PATH=$DEVKITPRO/devkitPPC/bin:$PATH" >> $GITHUB_ENV | |
- uses: actions/checkout@v4 | |
- name: Configure Wii U | |
run: arch/wiiu/CONFIG.WIIU | |
- name: Build Wii U | |
run: $MZX_MAKE | |
- name: Package Wii U .zip | |
run: make archive | |
Emscripten-HTML5: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Emscripten | |
uses: mymindstorm/setup-emsdk@v14 | |
with: | |
version: 3.1.57 | |
# actions-cache-folder: 'emsdk-cache' | |
- uses: actions/checkout@v4 | |
- name: Configure HTML5 | |
run: arch/emscripten/CONFIG.HTML5 | |
- name: Build HTML5 | |
run: $MZX_MAKE && make build | |
- name: Package HTML5 .zip | |
run: make archive | |
# | |
# Sanitizers. | |
# | |
AddressSanitizer: | |
runs-on: ubuntu-latest | |
env: | |
CC: clang | |
CXX: clang++ | |
steps: | |
- name: Install dependencies | |
run: sudo apt update && sudo apt install -y --no-install-recommends $MZXDEPS_DEBIAN_SDL2 | |
- uses: actions/checkout@v4 | |
- name: Configure | |
run: ./config.sh --platform unix-devel --enable-asan --enable-extram | |
- name: Build | |
run: $MZX_MAKE | |
- name: Run tests | |
run: $MZX_MAKE test | |
# Note: requires all non-system/libc calls to be from instrumented libraries. | |
# For the regression tests, MZX can get away with just zlib. | |
# SDL calls into uninstrumented functions and is not built at all. | |
# libpng is temporarily disabled. libogg/libvorbis work with no issue. | |
# MemorySanitizer: | |
# runs-on: ubuntu-latest | |
# env: | |
# CC: clang | |
# CXX: clang++ | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - name: Fetch dependencies | |
# run: | | |
# (cd scripts/deps; | |
# wget https://github.com/AliceLR/megazeux-dependencies/releases/download/v2.93c/megazeux-dependencies-2.93c-r0-linux-msan.tar.xz; | |
# tar -xJf megazeux-dependencies-*-linux-msan.tar.xz) | |
# - name: Configure | |
# run: ./config.sh --platform unix-devel --prefix scripts/deps/linux-msan/x86_64 --enable-msan --disable-sdl --disable-libpng --disable-x11 --enable-extram | |
# - name: Build | |
# run: $MZX_MAKE V=1 | |
# - name: Run tests | |
# run: $MZX_MAKE V=1 test | |
UndefinedBehaviorSanitizer: | |
runs-on: ubuntu-latest | |
env: | |
CC: clang | |
CXX: clang++ | |
UBSAN_OPTIONS: print_stacktrace=1 | |
steps: | |
- name: Install dependencies | |
run: sudo apt update && sudo apt install -y --no-install-recommends $MZXDEPS_DEBIAN_SDL2 | |
- uses: actions/checkout@v4 | |
- name: Configure | |
run: ./config.sh --platform unix-devel --enable-ubsan --enable-extram | |
- name: Build | |
run: $MZX_MAKE | |
- name: Run tests | |
run: $MZX_MAKE test |