Merge pull request #82 from samdze/scorbeoards #270
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: 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 |