WIP. #3
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: Accuracy | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
linux: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Fetch Source Code | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y meson ninja-build libsdl2-dev libglew-dev libgtk-3-dev libreadline-dev libedit-dev libcapstone-dev | |
- name: Build Hades w/ Debugger | |
run: | | |
meson build --werror -Dwith_debugger=true | |
cd build | |
ninja | |
- name: Extract BIOS | |
run: | | |
echo "$BIOS_DATA" | base64 -d | gpg --pinentry-mode loopback --passphrase "$BIOS_KEY" -d -o ./bios.bin | |
env: | |
BIOS_DATA: ${{ secrets.BIOS_DATA }} | |
BIOS_KEY: ${{ secrets.BIOS_KEY }} | |
- name: Download Test Roms | |
run: | | |
mkdir roms | |
cd roms | |
wget https://raw.githubusercontent.com/jsmolka/gba-tests/master/arm/arm.gba | |
wget https://raw.githubusercontent.com/jsmolka/gba-tests/master/thumb/thumb.gba | |
- name: Check Accuracy | |
run: | | |
# Setup a fake audio environment | |
export SDL_AUDIODRIVER=disk | |
ln -s /dev/null sdlaudio.raw | |
# Setup a fake X11 environment | |
export DISPLAY=:99 | |
sudo Xvfb -ac "$DISPLAY" -screen 0 1280x1024x24 > /dev/null 2>&1 & | |
# Setup the configuration | |
cat << EOF > config.json | |
{ | |
"file": { | |
"bios": "./bios.bin" | |
}, | |
"emulation": { | |
"skip_bios": true, | |
"speed": 0, | |
"unbounded": false, | |
"backup_storage": { | |
"autodetect": true, | |
"type": 0 | |
}, | |
"rtc": { | |
"autodetect": true, | |
"enabled": true | |
} | |
}, | |
} | |
EOF | |
# Run accuracy checks | |
python3 ./tests/run.py --binary ./build/hades --roms ./roms/ | |
- name: Cleanup | |
if: always() | |
run: | | |
if [[ -f ./bios.bin ]]; then | |
shred -u ./bios.bin | |
fi | |
- name: Collect Screenshots | |
uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: tests-screenshots | |
path: './tests_screenshots/' | |
if-no-files-found: error |