-
Notifications
You must be signed in to change notification settings - Fork 4
154 lines (148 loc) · 5.76 KB
/
main.yaml
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# this builds the 'example-project' game for all 3 OS's using the builder
# we use love12 to run the builder, however the game is built with 11.5
name: continuous-integration
on: [push, pull_request]
jobs:
builder:
runs-on: macos-12
permissions:
checks: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: love-build
- name: Checkout
uses: actions/checkout@v4
with:
path: builder
- name: Download Love
run: |
curl -L -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" --output love12.zip --url "https://api.github.com/repos/love2d/love/actions/artifacts/1348650151/zip"
7z x love12.zip -o*
7z x love12/love-macos.zip -o*
- name: Build Builder
run: |
mkdir builder/dist
love-macos/love.app/Contents/MacOS/love --version
# this next line just holds indefinitely for some reason cba to work it out right now
# love-macos/love.app/Contents/MacOS/love love-build/main.lua builder/main.lua
#- name: Upload Windows
# uses: actions/upload-artifact@v3
# with:
# name: love-build-windows
# path: builder/dist/love-build-windows.zip
#- name: Upload MacOS
# uses: actions/upload-artifact@v3
# with:
# name: love-build-macos
# path: builder/dist/love-build-macos.zip
#- name: Upload Linux
# uses: actions/upload-artifact@v3
# with:
# name: love-build-linux
# path: builder/dist/love-build-linux.zip
macos:
runs-on: macos-12
permissions:
checks: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Love
run: |
curl -L -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" --output love12.zip --url "https://api.github.com/repos/love2d/love/actions/artifacts/1348650151/zip"
7z x love12.zip -o*
7z x love12/love-macos.zip -o*
- name: Run Builder
run: |
love-macos/love.app/Contents/MacOS/love main.lua example-project/main.lua
- name: Check Build
run: |
cd example-project/dist/1.0.0
7z x ExampleGame-macos.zip -o*
ExampleGame-macos/ExampleGame.app/Contents/MacOS/love
echo "done"
windows:
runs-on: windows-2022
env:
ALSOFT_CONF: resources/alsoft.conf
permissions:
checks: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
# we need mesa so that we have a graphics window, which is required to
# generate icons using the graphics functions
- name: Install Mesa
run: |
curl -L --output mesa.7z --url https://github.com/pal1000/mesa-dist-win/releases/download/23.2.1/mesa3d-23.2.1-release-msvc.7z
7z x mesa.7z -o*
powershell.exe mesa\systemwidedeploy.cmd 1
- name: Download Love
run: |
curl -L -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" --output love12.zip --url "https://api.github.com/repos/love2d/love/actions/artifacts/1348654247/zip"
7z x love12.zip -o*
7z x love12/love-12.0-win64.zip -o*
- name: Run Builder
run: |
powershell.exe love-12.0-win64/love-12.0-win64/lovec.exe main.lua example-project/main.lua
- name: Check Build
run: |
cd example-project/dist/1.0.0
7z x ExampleGame-windows.zip -o*
powershell.exe ExampleGame-windows/ExampleGame.exe
echo "done"
linux:
runs-on: ubuntu-22.04
env:
ALSOFT_CONF: resources/alsoft.conf
DISPLAY: :99
steps:
- name: Update APT
run: sudo apt-get update
- name: Install Dependencies
run: |
sudo apt-get install --assume-yes build-essential git make cmake autoconf automake \
libtool pkg-config libasound2-dev libpulse-dev libaudio-dev \
libjack-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev \
libxfixes-dev libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev \
libgl1-mesa-dev libdbus-1-dev libudev-dev libgles2-mesa-dev \
libegl1-mesa-dev libibus-1.0-dev fcitx-libs-dev libsamplerate0-dev \
libsndio-dev libwayland-dev libxkbcommon-dev libdrm-dev libgbm-dev \
libfuse2 wmctrl openbox
- name: Checkout Repo
uses: actions/checkout@v4
- name: Download Love
run: |
curl -L -H "Accept: application/vnd.github+json" -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" --output love12.zip --url "https://api.github.com/repos/love2d/love/actions/artifacts/1348653725/zip"
7z x love12.zip -o*
mv love12/love-*.AppImage love12/love12.AppImage
ls love12
chmod +x love12/love12.AppImage
- name: Start xvfb and openbox
run: |
echo "Starting XVFB on $DISPLAY"
Xvfb $DISPLAY -screen 0, 360x240x24 &
echo "XVFBPID=$!" >> $GITHUB_ENV
# wait for xvfb to startup (3s is the same amount xvfb-run waits by default)
sleep 3
openbox &
echo "OPENBOXPID=$!" >> $GITHUB_ENV
- name: Run Builder
run: |
love12/love12.AppImage main.lua example-project/main.lua
- name: Check Build
run: |
ls example-project/dist/1.0.0
7z x -y example-project/dist/1.0.0/ExampleGame-linux.zip
./AppRun
- name: Stop xvfb and openbox
# should always stop xvfb and openbox even if other steps failed
if: always()
run: |
kill $XVFBPID
kill $OPENBOXPID