Build Linux ARM64 AppImage (#2154)

This commit is contained in:
Humberto Dias
2025-02-18 08:25:19 -03:00
committed by GitHub
parent 2d65274ae6
commit 1462bd47cf
+22 -15
View File
@@ -3,7 +3,10 @@ on: [push, pull_request]
jobs:
Linux:
runs-on: ubuntu-22.04
runs-on: ${{ matrix.runner }}
strategy:
matrix:
runner: [ubuntu-22.04, ubuntu-24.04-arm]
permissions:
checks: write
pull-requests: write
@@ -25,10 +28,14 @@ jobs:
libsndio-dev libwayland-dev libxkbcommon-dev libdrm-dev libgbm-dev \
libcurl4-openssl-dev libfuse2 wmctrl openbox mesa-vulkan-drivers \
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
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
uses: actions/checkout@v4
with:
@@ -77,12 +84,12 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Zip Test Output (opengl)
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)
uses: actions/upload-artifact@v4
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
- name: Run Test Suite (opengles)
env:
@@ -100,16 +107,16 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Zip Test Output (opengles)
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)
uses: actions/upload-artifact@v4
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
- name: Run Test Suite (vulkan)
env:
LOVE_GRAPHICS_DEBUG: 1
LOVE_GRAPHICS_DEBUG: ${{ runner.arch == 'ARM64' && '0' || '1' }}
LOVE_GRAPHICS_VULKAN_ALLOW_SOFTWARE: 1
run: |
./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
- name: Zip Test Output (vulkan)
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)
uses: actions/upload-artifact@v4
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
# should always stop xvfb and openbox even if other steps failed
if: always()
@@ -136,12 +143,12 @@ jobs:
- name: Artifact
uses: actions/upload-artifact@v4
with:
name: love-linux-x86_64.AppImage
name: love-linux-${{ runner.arch }}.AppImage
path: love-${{ github.sha }}.AppImage
- name: Artifact Debug Symbols
uses: actions/upload-artifact@v4
with:
name: love-x86_64-AppImage-debug
name: love-${{ runner.arch }}-AppImage-debug
path: love-${{ github.sha }}.AppImage-debug.tar.gz
- name: Check Tests Passing
if: steps.report1.outputs.conclusion == 'failure' || steps.report2.outputs.conclusion == 'failure'