-
Notifications
You must be signed in to change notification settings - Fork 3
85 lines (74 loc) · 2.66 KB
/
build.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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