Skip to content

Commit 1a5f819

Browse files
committed
Build arm/amd AppImage
1 parent 1d4e4e5 commit 1a5f819

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

.github/workflows/build.yaml

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ on:
44
push:
55
branches:
66
- main
7-
- build-mac-win
7+
- build-linux-arm
88
tags:
99
- "*"
1010
pull_request:
@@ -17,8 +17,18 @@ env:
1717

1818
jobs:
1919
build-linux:
20-
runs-on: ubuntu-22.04
2120
environment: build
21+
22+
strategy:
23+
matrix:
24+
include:
25+
- arch: x86_64
26+
runner: ubuntu-22.04
27+
- arch: aarch64
28+
runner: ubuntu-22.04-arm64
29+
30+
runs-on: ${{ matrix.runner }}
31+
2232
steps:
2333
- name: Checkout repository
2434
uses: actions/checkout@v4
@@ -69,14 +79,20 @@ jobs:
6979
run: |
7080
python3 -m pip install --upgrade pip
7181
python3 -m pip install "aqtinstall<4"
72-
python3 -m aqt install-qt --outputdir "$HOME/Qt" linux desktop "${QT_VERSION}" linux_gcc_64 -m qtwebsockets
73-
echo "$HOME/Qt/${QT_VERSION}/gcc_64/bin" >> "$GITHUB_PATH"
82+
# Adjust Qt target if needed for cross compilation
83+
if [ "${{ matrix.arch }}" = "x86_64" ]; then
84+
python3 -m aqt install-qt --outputdir "$HOME/Qt" linux desktop "${QT_VERSION}" linux_gcc_64 -m qtwebsockets
85+
echo "$HOME/Qt/${QT_VERSION}/gcc_64/bin" >> "$GITHUB_PATH"
86+
else
87+
python3 -m aqt install-qt --outputdir "$HOME/Qt" linux desktop "${QT_VERSION}" linux_arm64 -m qtwebsockets
88+
echo "$HOME/Qt/${QT_VERSION}/arm64/bin" >> "$GITHUB_PATH"
89+
fi
7490
7591
- name: Download linuxdeployqt
7692
run: |
77-
wget https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage
78-
chmod +x linuxdeployqt-continuous-x86_64.AppImage
79-
sudo mv linuxdeployqt-continuous-x86_64.AppImage /usr/local/bin/linuxdeployqt
93+
wget https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-${{ matrix.arch }}.AppImage
94+
chmod +x linuxdeployqt-continuous-${{ matrix.arch }}.AppImage
95+
sudo mv linuxdeployqt-continuous-${{ matrix.arch }}.AppImage /usr/local/bin/linuxdeployqt
8096
8197
- name: Configure and build
8298
run: |
@@ -118,18 +134,18 @@ jobs:
118134
- name: Run linuxdeployqt
119135
run: |
120136
linuxdeployqt "AppDir/usr/share/applications/${APP_NAME}.desktop" -appimage -bundle-non-qt-libs
121-
mv ./*.AppImage "${APP_NAME}-${PACKAGE_VERSION}.AppImage"
122-
chmod +x "${APP_NAME}-${PACKAGE_VERSION}.AppImage"
137+
mv ./*.AppImage "${APP_NAME}-${PACKAGE_VERSION}-${{ matrix.arch }}.AppImage"
138+
chmod +x "${APP_NAME}-${PACKAGE_VERSION}-${{ matrix.arch }}.AppImage"
123139
124140
- name: Check AppImage
125141
run: |
126-
"./${APP_NAME}-${PACKAGE_VERSION}.AppImage" --appimage-extract
142+
"./${APP_NAME}-${PACKAGE_VERSION}-${{ matrix.arch }}.AppImage" --appimage-extract
127143
ldd "squashfs-root/usr/bin/${APP_NAME}"
128144
129145
- name: Upload artifacts
130146
uses: actions/upload-artifact@v4
131147
with:
132-
name: ${{ env.APP_NAME }}-artifacts-linux
148+
name: ${{ env.APP_NAME }}-artifacts-linux-${{ matrix.arch }}
133149
path: "*.AppImage"
134150
if-no-files-found: error
135151

0 commit comments

Comments
 (0)