Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -155,9 +155,15 @@ jobs:

linux:
needs: lint
runs-on: ubuntu-22.04-8-cores
runs-on: ${{ matrix.os }}
timeout-minutes: 30

strategy:
matrix:
include:
- os: ubuntu-22.04-8-cores
arch: x64
- os: ubuntu-22.04-arm64-4-cores
arch: arm64
steps:
- run: lsb_release -a
- run: uname -a
Expand Down Expand Up @@ -187,6 +193,11 @@ jobs:
# path: ${{ env.SCCACHE_PATH }}
# key: sccache-${{ runner.os }}-${{ hashFiles('pnpm-lock.yaml', 'patches/**') }}

# Needed because electron-builder's bundled FPM doesn't support arm64
- name: Install FPM (for packaging)
if: ${{ matrix.os == 'ubuntu-22.04-arm64-4-cores' }}
run: sudo gem install fpm
Comment on lines +196 to +199
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Starting with electron-builder 26.0.18, this workaround will no longer be needed as Linux arm64 binaries have been added for fpm.

However, that version is currently in pre-release, so I guess folks will want to wait for a next official release prior to updating to that version.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

However, that version is currently in pre-release

The current used electron-builder version is 26.0.14

"electron-builder": "26.0.14",

which is also marked as "pre-release": https://github.com/electron-userland/electron-builder/releases/tag/v26.0.14

So I do not think upgrading to 26.0.20 should be a problem.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


- name: Install Desktop node_modules
run: pnpm install
env:
Expand All @@ -213,6 +224,7 @@ jobs:
# CXX: sccache g++
# SCCACHE_GHA_ENABLED: "true"
DISABLE_INSPECT_FUSE: on
USE_SYSTEM_FPM: ${{ matrix.os == 'ubuntu-22.04-arm64-4-cores' && 'true' || '' }}
- name: Build without packaging .deb file
run: pnpm run build:release --linux dir
if: github.ref != 'refs/heads/main'
Expand All @@ -221,10 +233,11 @@ jobs:
# CXX: sccache g++
# SCCACHE_GHA_ENABLED: "true"
DISABLE_INSPECT_FUSE: on
USE_SYSTEM_FPM: ${{ matrix.os == 'ubuntu-22.04-arm64-4-cores' && 'true' || '' }}

- name: Upload installer size
if: ${{ github.repository == 'signalapp/Signal-Desktop-Private' && github.ref == 'refs/heads/main' }}
run: node ts/scripts/dd-installer-size.js linux
run: node ts/scripts/dd-installer-size.js linux-${{ matrix.arch }}
env:
DD_API_KEY: ${{ secrets.DATADOG_API_KEY }}

Expand Down
3 changes: 2 additions & 1 deletion ts/scripts/dd-installer-size.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ import { join } from 'node:path';
import { name as NAME, version as VERSION } from '../../package.json';

const SUPPORT_CONFIG = new Set([
'linux',
'linux-x64',
'linux-arm64',
'windows',
'macos-arm64',
'macos-x64',
Expand Down
3 changes: 3 additions & 0 deletions ts/scripts/test-release.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ if (process.platform === 'darwin') {
} else if (process.platform === 'win32') {
archive = join('win-unpacked', 'resources', 'app.asar');
exe = join('win-unpacked', `${packageJson.productName}.exe`);
} else if (process.platform === 'linux' && process.arch !== 'x64') {
archive = join(`linux-${process.arch}-unpacked`, 'resources', 'app.asar');
exe = join(`linux-${process.arch}-unpacked`, packageJson.name);
} else if (process.platform === 'linux') {
archive = join('linux-unpacked', 'resources', 'app.asar');
exe = join('linux-unpacked', packageJson.name);
Expand Down