|
4 | 4 | push: |
5 | 5 | branches: |
6 | 6 | - main |
7 | | - - build-mac-win |
| 7 | + - build-linux-arm |
8 | 8 | tags: |
9 | 9 | - "*" |
10 | 10 | pull_request: |
|
17 | 17 |
|
18 | 18 | jobs: |
19 | 19 | build-linux: |
20 | | - runs-on: ubuntu-22.04 |
21 | 20 | 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 | + |
22 | 32 | steps: |
23 | 33 | - name: Checkout repository |
24 | 34 | uses: actions/checkout@v4 |
@@ -69,14 +79,20 @@ jobs: |
69 | 79 | run: | |
70 | 80 | python3 -m pip install --upgrade pip |
71 | 81 | 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 |
74 | 90 |
|
75 | 91 | - name: Download linuxdeployqt |
76 | 92 | 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 |
80 | 96 |
|
81 | 97 | - name: Configure and build |
82 | 98 | run: | |
@@ -118,18 +134,18 @@ jobs: |
118 | 134 | - name: Run linuxdeployqt |
119 | 135 | run: | |
120 | 136 | 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" |
123 | 139 |
|
124 | 140 | - name: Check AppImage |
125 | 141 | run: | |
126 | | - "./${APP_NAME}-${PACKAGE_VERSION}.AppImage" --appimage-extract |
| 142 | + "./${APP_NAME}-${PACKAGE_VERSION}-${{ matrix.arch }}.AppImage" --appimage-extract |
127 | 143 | ldd "squashfs-root/usr/bin/${APP_NAME}" |
128 | 144 |
|
129 | 145 | - name: Upload artifacts |
130 | 146 | uses: actions/upload-artifact@v4 |
131 | 147 | with: |
132 | | - name: ${{ env.APP_NAME }}-artifacts-linux |
| 148 | + name: ${{ env.APP_NAME }}-artifacts-linux-${{ matrix.arch }} |
133 | 149 | path: "*.AppImage" |
134 | 150 | if-no-files-found: error |
135 | 151 |
|
|
0 commit comments