This commit addresses occasional pipeline failures caused by transient network errors during dependency installation with `npm ci`. It centralizes the logic for installing npm dependencies and introduces a retry mechanism. The new approach will attempt `npm ci` up to 5 times with a 5-second interval between each attempt, thereby increasing the resilience of CI/CD pipelines. This commit adds a new script `npm-install.js` with `npm run install-deps` command to centralize npm dependency installation process throughout the project. Separate testing of scripts to a separate workflow. It removes unused `install` dependency from `package.json`.
check-desktop-runtime-errors
This script automates the processes of:
- Building
- Packaging
- Installing
- Executing
- Verifying Electron distributions
It runs the application for a duration and detects runtime errors in the packaged application via:
- Log verification: Checking application logs for errors and validating successful application initialization.
stderrmonitoring: Continuous listening to thestderrstream for unexpected errors.- Window title inspection: Checking for window titles that indicate crashes before logging becomes possible.
Upon error, the script captures a screenshot (if --screenshot is provided) and terminates.
Options
--build: Clears the electron distribution directory and forces a rebuild of the Electron app.--screenshot: Takes a screenshot of the desktop environment after running the application.
This module provides utilities for building, executing, and validating Electron desktop apps. It can be used to automate checking for runtime errors during development.
Configs
Configurations are defined in config.ts.