CI: Build aarch64 linux (#249)

This commit is contained in:
David Chavez 2024-05-27 12:33:15 +02:00 committed by GitHub
parent 790b10a4b4
commit 95b7a64f1c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 31 additions and 13 deletions

View File

@ -1,4 +1,18 @@
curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-static-x86_64.AppImage" ARCH=$(uname -m)
LINUX_DEPLOY_ARCH=$(uname -m)
if [ "$ARCH" == "x86_64" ]; then
ARCH="x86_64"
LINUX_DEPLOY_ARCH="x86_64"
elif [ "$ARCH" == "aarch64" ]; then
ARCH="arm_aarch64"
LINUX_DEPLOY_ARCH="aarch64"
else
echo "Unsupported architecture: $ARCH"
exit 1
fi
curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-$LINUX_DEPLOY_ARCH.AppImage"
curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy-plugin-gtk/raw/master/linuxdeploy-plugin-gtk.sh" curl -sSfLO "https://github.com/linuxdeploy/linuxdeploy-plugin-gtk/raw/master/linuxdeploy-plugin-gtk.sh"
chmod a+x linuxdeploy* chmod a+x linuxdeploy*
@ -8,10 +22,10 @@ cp -r assets/ AppDir/usr/bin/
cp icons/512.png AppDir/Zelda64Recompiled.png cp icons/512.png AppDir/Zelda64Recompiled.png
cp .github/linux/Zelda64Recompiled.desktop AppDir/ cp .github/linux/Zelda64Recompiled.desktop AppDir/
./linuxdeploy-static-x86_64.AppImage --appimage-extract "./linuxdeploy-$LINUX_DEPLOY_ARCH.AppImage" --appimage-extract
mv squashfs-root/ deploy mv squashfs-root/ deploy
ARCH=x86_64 ./deploy/AppRun --appdir=AppDir/ -d AppDir/Zelda64Recompiled.desktop -i AppDir/Zelda64Recompiled.png -e AppDir/usr/bin/Zelda64Recompiled --plugin gtk ./deploy/AppRun --appdir=AppDir/ -d AppDir/Zelda64Recompiled.desktop -i AppDir/Zelda64Recompiled.png -e AppDir/usr/bin/Zelda64Recompiled --plugin gtk
sed -i 's/exec/#exec/g' AppDir/AppRun sed -i 's/exec/#exec/g' AppDir/AppRun
echo 'cd "$this_dir"/usr/bin/' >> AppDir/AppRun echo 'cd "$this_dir"/usr/bin/' >> AppDir/AppRun
echo './Zelda64Recompiled' >> AppDir/AppRun echo './Zelda64Recompiled' >> AppDir/AppRun
ARCH=x86_64 ./deploy/usr/bin/linuxdeploy-plugin-appimage --appdir=AppDir ./deploy/usr/bin/linuxdeploy-plugin-appimage --appdir=AppDir

View File

@ -3,7 +3,7 @@ on:
push: push:
branches: branches:
- dev - dev
pull_request_target: pull_request:
types: [opened, synchronize] types: [opened, synchronize]
concurrency: concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
@ -17,12 +17,15 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- run: echo ✓ - run: echo ✓
build-unix: build-linux:
needs: authorize needs: authorize
runs-on: ubuntu-22.04 runs-on: ${{ matrix.arch == 'x64' && matrix.os || format('blaze/{0}', matrix.os) }}
strategy: strategy:
matrix: matrix:
type: [ Debug, Release ] type: [ Debug, Release ]
os: [ ubuntu-22.04 ]
arch: [ x64, arm64 ]
name: ${{ matrix.os }} (${{ matrix.arch }}, ${{ matrix.type }})
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
@ -32,7 +35,7 @@ jobs:
- name: ccache - name: ccache
uses: hendrikmuhs/ccache-action@v1.2 uses: hendrikmuhs/ccache-action@v1.2
with: with:
key: ${{ runner.os }}-z64re-ccache-${{ matrix.type }} key: ${{ matrix.os }}-z64re-ccache-${{ matrix.type }}
- name: Install Linux Dependencies - name: Install Linux Dependencies
if: runner.os == 'Linux' if: runner.os == 'Linux'
run: | run: |
@ -90,25 +93,26 @@ jobs:
run: | run: |
mv cmake-build/Zelda64Recompiled Zelda64Recompiled mv cmake-build/Zelda64Recompiled Zelda64Recompiled
rm -rf assets/scss rm -rf assets/scss
tar -czf Zelda64Recompiled-${{ runner.os }}-${{ matrix.type }}.tar.gz Zelda64Recompiled assets/ tar -czf Zelda64Recompiled.tar.gz Zelda64Recompiled assets/
- name: Archive Zelda64Recomp - name: Archive Zelda64Recomp
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: Zelda64Recompiled-${{ runner.os }}-${{ matrix.type }} name: Zelda64Recompiled-${{ runner.os }}-${{ runner.arch }}-${{ matrix.type }}
path: Zelda64Recompiled-${{ runner.os }}-${{ matrix.type }}.tar.gz path: Zelda64Recompiled.tar.gz
- name: Prepare AppImage - name: Prepare AppImage
run: ./.github/linux/appimage.sh run: ./.github/linux/appimage.sh
- name: Zelda64Recomp AppImage - name: Zelda64Recomp AppImage
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: Zelda64Recompiled-AppImage-${{ matrix.type }} name: Zelda64Recompiled-AppImage-${{ runner.arch }}-${{ matrix.type }}
path: Zelda64Recompiled-x86_64.AppImage path: Zelda64Recompiled-*.AppImage
build-windows: build-windows:
needs: authorize needs: authorize
runs-on: windows-latest runs-on: windows-latest
strategy: strategy:
matrix: matrix:
type: [ Debug, Release ] type: [ Debug, Release ]
name: windows (${{ matrix.type }})
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4