|
@@ -3,7 +3,10 @@ on: [push, pull_request]
|
|
|
|
|
|
jobs:
|
|
jobs:
|
|
Linux:
|
|
Linux:
|
|
- runs-on: ubuntu-22.04
|
|
|
|
|
|
+ runs-on: ${{ matrix.runner }}
|
|
|
|
+ strategy:
|
|
|
|
+ matrix:
|
|
|
|
+ runner: [ubuntu-22.04, ubuntu-24.04-arm]
|
|
permissions:
|
|
permissions:
|
|
checks: write
|
|
checks: write
|
|
pull-requests: write
|
|
pull-requests: write
|
|
@@ -25,10 +28,14 @@ jobs:
|
|
libsndio-dev libwayland-dev libxkbcommon-dev libdrm-dev libgbm-dev \
|
|
libsndio-dev libwayland-dev libxkbcommon-dev libdrm-dev libgbm-dev \
|
|
libcurl4-openssl-dev libfuse2 wmctrl openbox mesa-vulkan-drivers \
|
|
libcurl4-openssl-dev libfuse2 wmctrl openbox mesa-vulkan-drivers \
|
|
libvulkan1
|
|
libvulkan1
|
|
|
|
+ - name: Install Vulkan SDK
|
|
|
|
+ if: ${{ runner.arch == 'X64' }}
|
|
|
|
+ run: |
|
|
|
|
+ set -e
|
|
wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
|
|
wget -qO- https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo tee /etc/apt/trusted.gpg.d/lunarg.asc
|
|
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.283-jammy.list https://packages.lunarg.com/vulkan/1.3.283/lunarg-vulkan-1.3.283-jammy.list
|
|
sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.3.283-jammy.list https://packages.lunarg.com/vulkan/1.3.283/lunarg-vulkan-1.3.283-jammy.list
|
|
- sudo apt update
|
|
|
|
- sudo apt install --assume-yes vulkan-sdk
|
|
|
|
|
|
+ sudo apt-get update
|
|
|
|
+ sudo apt-get install --assume-yes vulkan-sdk
|
|
- name: Checkout love-appimage-source
|
|
- name: Checkout love-appimage-source
|
|
uses: actions/checkout@v4
|
|
uses: actions/checkout@v4
|
|
with:
|
|
with:
|
|
@@ -77,12 +84,12 @@ jobs:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Zip Test Output (opengl)
|
|
- name: Zip Test Output (opengl)
|
|
run: |
|
|
run: |
|
|
- 7z a -tzip test-output-linux-opengl.zip love2d-${{ github.sha }}/testing/output/
|
|
|
|
|
|
+ 7z a -tzip test-output-linux-opengl-${{ runner.arch }}.zip love2d-${{ github.sha }}/testing/output/
|
|
- name: Artifact Test Output (opengl)
|
|
- name: Artifact Test Output (opengl)
|
|
uses: actions/upload-artifact@v4
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
with:
|
|
- name: test-output-linux-opengl-${{ steps.report1.outputs.conclusion }}
|
|
|
|
- path: test-output-linux-opengl.zip
|
|
|
|
|
|
+ name: test-output-linux-opengl-${{ runner.arch }}-${{ steps.report1.outputs.conclusion }}
|
|
|
|
+ path: test-output-linux-opengl-${{ runner.arch }}.zip
|
|
# linux opengles tests
|
|
# linux opengles tests
|
|
- name: Run Test Suite (opengles)
|
|
- name: Run Test Suite (opengles)
|
|
env:
|
|
env:
|
|
@@ -100,16 +107,16 @@ jobs:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Zip Test Output (opengles)
|
|
- name: Zip Test Output (opengles)
|
|
run: |
|
|
run: |
|
|
- 7z a -tzip test-output-linux-opengles.zip love2d-${{ github.sha }}/testing/output/
|
|
|
|
|
|
+ 7z a -tzip test-output-linux-opengles-${{ runner.arch }}.zip love2d-${{ github.sha }}/testing/output/
|
|
- name: Artifact Test Output (opengles)
|
|
- name: Artifact Test Output (opengles)
|
|
uses: actions/upload-artifact@v4
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
with:
|
|
- name: test-output-linux-opengles-${{ steps.report2.outputs.conclusion }}
|
|
|
|
- path: test-output-linux-opengles.zip
|
|
|
|
|
|
+ name: test-output-linux-opengles-${{ runner.arch }}-${{ steps.report2.outputs.conclusion }}
|
|
|
|
+ path: test-output-linux-opengles-${{ runner.arch }}.zip
|
|
# linux vulkan tests
|
|
# linux vulkan tests
|
|
- name: Run Test Suite (vulkan)
|
|
- name: Run Test Suite (vulkan)
|
|
env:
|
|
env:
|
|
- LOVE_GRAPHICS_DEBUG: 1
|
|
|
|
|
|
+ LOVE_GRAPHICS_DEBUG: ${{ runner.arch == 'ARM64' && '0' || '1' }}
|
|
LOVE_GRAPHICS_VULKAN_ALLOW_SOFTWARE: 1
|
|
LOVE_GRAPHICS_VULKAN_ALLOW_SOFTWARE: 1
|
|
run: |
|
|
run: |
|
|
./love-${{ github.sha }}.AppImage love2d-${{ github.sha }}/testing/main.lua --all --isRunner --renderers vulkan
|
|
./love-${{ github.sha }}.AppImage love2d-${{ github.sha }}/testing/main.lua --all --isRunner --renderers vulkan
|
|
@@ -121,12 +128,12 @@ jobs:
|
|
path: love2d-${{ github.sha }}/testing/output/lovetest_all.md
|
|
path: love2d-${{ github.sha }}/testing/output/lovetest_all.md
|
|
- name: Zip Test Output (vulkan)
|
|
- name: Zip Test Output (vulkan)
|
|
run: |
|
|
run: |
|
|
- 7z a -tzip test-output-linux-vulkan.zip love2d-${{ github.sha }}/testing/output/
|
|
|
|
|
|
+ 7z a -tzip test-output-linux-vulkan-${{ runner.arch }}.zip love2d-${{ github.sha }}/testing/output/
|
|
- name: Artifact Test Output (vulkan)
|
|
- name: Artifact Test Output (vulkan)
|
|
uses: actions/upload-artifact@v4
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
with:
|
|
- name: test-output-linux-vulkan
|
|
|
|
- path: test-output-linux-vulkan.zip
|
|
|
|
|
|
+ name: test-output-linux-vulkan-${{ runner.arch }}
|
|
|
|
+ path: test-output-linux-vulkan-${{ runner.arch }}.zip
|
|
- name: Stop xvfb and openbox
|
|
- name: Stop xvfb and openbox
|
|
# should always stop xvfb and openbox even if other steps failed
|
|
# should always stop xvfb and openbox even if other steps failed
|
|
if: always()
|
|
if: always()
|
|
@@ -136,12 +143,12 @@ jobs:
|
|
- name: Artifact
|
|
- name: Artifact
|
|
uses: actions/upload-artifact@v4
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
with:
|
|
- name: love-linux-x86_64.AppImage
|
|
|
|
|
|
+ name: love-linux-${{ runner.arch }}.AppImage
|
|
path: love-${{ github.sha }}.AppImage
|
|
path: love-${{ github.sha }}.AppImage
|
|
- name: Artifact Debug Symbols
|
|
- name: Artifact Debug Symbols
|
|
uses: actions/upload-artifact@v4
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
with:
|
|
- name: love-x86_64-AppImage-debug
|
|
|
|
|
|
+ name: love-${{ runner.arch }}-AppImage-debug
|
|
path: love-${{ github.sha }}.AppImage-debug.tar.gz
|
|
path: love-${{ github.sha }}.AppImage-debug.tar.gz
|
|
- name: Check Tests Passing
|
|
- name: Check Tests Passing
|
|
if: steps.report1.outputs.conclusion == 'failure' || steps.report2.outputs.conclusion == 'failure'
|
|
if: steps.report1.outputs.conclusion == 'failure' || steps.report2.outputs.conclusion == 'failure'
|