Update main.yaml #85
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
# 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: | | |
ls | |
mkdir builder/dist | |
ls builder | |
ls love-build | |
love-macos/love.app/Contents/MacOS/love love-build/main.lua builder/main.lua | |
ls builder/dist | |
#- name: Upload MacOS | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: love-build-macos | |
# path: builder/dist/love-build-macos.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 |