This commit addresses an issue where CI/CD jobs fail due to the removal of `imagemagick` from GitHub's preinstalled software list for Ubuntu runners. As a result, commands relying on `imagemagick` were not found. To resolve this, the commit installs `imagemagick` across all platforms (Linux, macOS, and Windows). This safeguards against future changes to the preinstalled software list on GitHub runners. This commit also centralizes installing of ImageMagick as its own action for reusability.
77 lines
2.4 KiB
YAML
77 lines
2.4 KiB
YAML
name: checks.desktop-runtime-errors
|
|
# Verifies desktop builds for Electron applications across multiple OS platforms (macOS ,Ubuntu, and Windows).
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
run-check:
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- macos-latest # Apple silicon (ARM64)
|
|
- macos-13 # Intel-based (x86-64)
|
|
- ubuntu-latest
|
|
- windows-latest
|
|
fail-fast: false # Allows to see results from other combinations
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
-
|
|
name: Checkout
|
|
uses: actions/checkout@v4
|
|
-
|
|
name: Setup node
|
|
uses: ./.github/actions/setup-node
|
|
-
|
|
name: Install dependencies
|
|
uses: ./.github/actions/npm-install-dependencies
|
|
-
|
|
name: Install ImageMagick # For screenshots
|
|
uses: ./.github/actions/install-imagemagick
|
|
-
|
|
name: Configure Ubuntu
|
|
if: contains(matrix.os, 'ubuntu') # macOS runner is missing Docker
|
|
shell: bash
|
|
run: |-
|
|
sudo apt update
|
|
|
|
# Configure AppImage dependencies
|
|
sudo apt install -y libfuse2
|
|
|
|
# Configure DBUS (fixes `Failed to connect to the bus: Could not parse server address: Unknown address type`)
|
|
if ! command -v 'dbus-launch' &> /dev/null; then
|
|
echo 'DBUS does not exist, installing...'
|
|
sudo apt install -y dbus-x11 # Gives both dbus and dbus-launch utility
|
|
fi
|
|
sudo systemctl start dbus
|
|
DBUS_LAUNCH_OUTPUT=$(dbus-launch)
|
|
if [ $? -eq 0 ]; then
|
|
echo "${DBUS_LAUNCH_OUTPUT}" >> $GITHUB_ENV
|
|
else
|
|
echo 'Error: dbus-launch command did not execute successfully. Exiting.' >&2
|
|
echo "${DBUS_LAUNCH_OUTPUT}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# Configure fake (virtual) display
|
|
sudo apt install -y xvfb
|
|
sudo Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
|
|
echo "DISPLAY=:99" >> $GITHUB_ENV
|
|
|
|
# Install xdotool and xprop (from x11-utils) for window title capturing
|
|
sudo apt install -y xdotool x11-utils
|
|
-
|
|
name: Test
|
|
shell: bash
|
|
run: |-
|
|
export SCREENSHOT=true
|
|
npm run check:desktop
|
|
-
|
|
name: Upload screenshot
|
|
if: always() # Run even if previous step fails
|
|
uses: ./.github/actions/upload-artifact
|
|
with:
|
|
name: screenshot-${{ matrix.os }}
|
|
path: screenshot.png
|