@@ -159,9 +159,15 @@ jobs:
159159
160160 linux :
161161 needs : lint
162- runs-on : ubuntu-22.04-8-cores
162+ runs-on : ${{ matrix.os }}
163163 timeout-minutes : 30
164-
164+ strategy :
165+ matrix :
166+ include :
167+ - os : ubuntu-22.04-8-cores
168+ arch : x64
169+ - os : ubuntu-22.04-arm64-4-cores
170+ arch : arm64
165171 steps :
166172 - run : lsb_release -a
167173 - run : uname -a
@@ -185,6 +191,11 @@ jobs:
185191 - name : Install xvfb and libpulse0
186192 run : sudo apt-get install xvfb libpulse0 || (sudo apt-get update && sudo apt-get install xvfb libpulse0)
187193
194+ # Needed because electron-builder's bundled FPM doesn't support arm64
195+ - name : Install FPM (for packaging)
196+ if : ${{ matrix.os == 'ubuntu-22.04-arm64-4-cores' }}
197+ run : sudo gem install fpm
198+
188199 - name : Setup sccache
189200 uses :
mozilla-actions/[email protected] 190201 - name : Restore sccache
@@ -219,6 +230,7 @@ jobs:
219230 CXX : sccache g++
220231 SCCACHE_GHA_ENABLED : " true"
221232 DISABLE_INSPECT_FUSE : on
233+ USE_SYSTEM_FPM : ${{ matrix.os == 'ubuntu-22.04-arm64-4-cores' && 'true' || '' }}
222234 - name : Build without packaging .deb file
223235 run : pnpm run build:release --linux dir
224236 if : github.ref != 'refs/heads/main'
@@ -227,10 +239,11 @@ jobs:
227239 CXX : sccache g++
228240 SCCACHE_GHA_ENABLED : " true"
229241 DISABLE_INSPECT_FUSE : on
242+ USE_SYSTEM_FPM : ${{ matrix.os == 'ubuntu-22.04-arm64-4-cores' && 'true' || '' }}
230243
231244 - name : Upload installer size
232245 if : ${{ github.repository == 'signalapp/Signal-Desktop-Private' && github.ref == 'refs/heads/main' }}
233- run : node ts/scripts/dd-installer-size.js linux
246+ run : node ts/scripts/dd-installer-size.js linux-${{ matrix.arch }}
234247 env :
235248 DD_API_KEY : ${{ secrets.DATADOG_API_KEY }}
236249
0 commit comments