Skip to content

Commit

Permalink
Build Linux ARM64 AppImage (#2154)
Browse files Browse the repository at this point in the history
  • Loading branch information
humbertodias authored Feb 18, 2025
1 parent 2d65274 commit 1462bd4
Showing 1 changed file with 22 additions and 15 deletions.
37 changes: 22 additions & 15 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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:
Expand Down Expand Up @@ -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:
Expand All @@ -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
Expand All @@ -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()
Expand All @@ -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'
Expand Down

0 comments on commit 1462bd4

Please sign in to comment.