-
-
Notifications
You must be signed in to change notification settings - Fork 174
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add test for runtime errors for desktop app $233
- Address Electron main process error due to ES Modules. (Related issues: nklayman/vue-cli-plugin-electron-builder$1622, electron/electron$21457, electron/asar$249) - Add GitHub workflow to verify Electron builds across macOS, Ubuntu, and Windows. - Update README with new workflow status badge. - Add automation script for build, execution, and error verification of Electron distributions. add checks to ensure desktop app runs
- Loading branch information
1 parent
0d15992
commit b593b03
Showing
3 changed files
with
427 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
name: checks.desktop-runtime-errors | ||
# Verifies desktop builds for Electron applications across multiple OS platforms (macOS ,Ubuntu, and Windows). | ||
|
||
on: | ||
push: | ||
pull_request: | ||
|
||
jobs: | ||
build-desktop: | ||
strategy: | ||
matrix: | ||
os: [ macos, ubuntu, windows ] | ||
fail-fast: false # Allows to see results from other combinations | ||
runs-on: ${{ matrix.os }}-latest | ||
steps: | ||
- | ||
name: Checkout | ||
uses: actions/checkout@v2 | ||
- | ||
name: Setup node | ||
uses: ./.github/actions/setup-node | ||
- | ||
name: Configure Ubuntu | ||
if: matrix.os == 'ubuntu' | ||
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 ImageMagick for screenshots | ||
sudo apt install -y imagemagick | ||
- | ||
name: Configure macOS | ||
if: matrix.os == 'macos' | ||
# Disable Gatekeeper as Electron app isn't signed and notarized | ||
run: sudo spctl --master-disable | ||
- | ||
name: Test | ||
run: |- | ||
node scripts/check-desktop-runtime-errors.js --screenshot | ||
- | ||
name: Upload screenshot | ||
if: always() # Run even if previous step fails | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: screenshot-${{ matrix.os }} | ||
path: screenshot.png |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.