Skip to content

Merge pull request #82 from samdze/scorbeoards #270

Merge pull request #82 from samdze/scorbeoards

Merge pull request #82 from samdze/scorbeoards #270

Workflow file for this run

name: Build
on: [push, pull_request]
jobs:
example-project:
runs-on: ubuntu-latest
container: nimlang/choosenim
strategy:
matrix:
target: [ device, simulator ]
nim-version: [ 2.0.8 ]
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/build-setup
with:
nim-version: ${{ matrix.nim-version }}
- uses: ./.github/actions/project-setup
with:
working-directory: ./playdate_example
- run: nimble ${{ matrix.target }}
working-directory: ./playdate_example
tests:
runs-on: ubuntu-latest
container: nimlang/choosenim
strategy:
matrix:
nim-version: [ 2.0.8 ]
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/build-setup
with:
nim-version: ${{ matrix.nim-version }}
- run: nimble test
headless-tests:
runs-on: ubuntu-latest
timeout-minutes: 5
container: nimlang/choosenim
strategy:
matrix:
nim-version: [ 2.0.8 ]
steps:
- uses: actions/checkout@v3
- uses: ./.github/actions/build-setup
with:
nim-version: ${{ matrix.nim-version }}
- uses: ./.github/actions/project-setup
with:
working-directory: ./tests
- name: Install dependencies
run: apt-get install -y xvfb libgtk-3-0 sudo libwebkit2gtk-4.0 libwebkit2gtk-4.0-dev libsdl2-dev pulseaudio
# Because we are headless there is no audio driver to interact with by default, which causes a set
# of warnings to be emitted. This set of commands sets up a dummy audio sink that silences those warnings.
- name: Setup audio sink
run: |
export HOME="/config"
pulseaudio -D --exit-idle-time=-1
pactl load-module module-null-sink sink_name=SpeakerOutput sink_properties=device.description="Dummy_Output"
- run: nimble simulator
working-directory: ./tests
# The first time the simulator runs, it prompts the user with an alert. Obviously, we're running headless,
# so this prevents the tests from running without closing that alert. Creating this ini file will stop that
# alert from showing in the first place
- name: Create simulator ini
run: |
export PD_INI_DIR="/config/.config/Playdate Simulator"
mkdir -p "$PD_INI_DIR"
export PD_INI_FILE="$PD_INI_DIR/Playdate Simulator.ini"
echo "ShowPerfWarning=0" > $PD_INI_FILE
echo "ShowElist=0" >> $PD_INI_FILE
echo "LastRelease=$(cat PlaydateSDK-*/VERSION.txt)" >> $PD_INI_FILE
- name: Run headless test
working-directory: ./tests
run: |
export HOME="/config"
xvfb-run ../PlaydateSDK-*/bin/PlaydateSimulator tests.pdx