-
Notifications
You must be signed in to change notification settings - Fork 18
Description
We've relied on the GitHub action samuelmeuli/action-electron-builder
for many years to build/sign/release our desktop wallet, while using NPM as our package manager and script runner. It was discovered by @killerwhile who wrote the initial GitHub workflow to sign our app. Since then, we've had some issues with this action, because the action is not actively maintained.
We decided to switch to a fork: coparse-inc/action-electron-builder
.
Then, after migrating to a monorepo with Bun instead of NPM, we faced new issues:
- Building desktop wallet on Windows VM in CI fails (Bun not available on Windows) #5
- action-electron-builder does not support Bun but only NPM and Yarn
- We mitigated this issue by using
bun install --yarn
to convert the Bun lockfile to a Yarn lockfile and use Yarn instead of Bun to build/sign/release our app.
- We mitigated this issue by using
Now, after switching from Bun to PNPM we are facing a new issue:
coparse-inc/action-electron-builder
does not support PNPM but only NPM and Yarn
While PNPM has an import
command to import convert lockfiles generated with other package managers to a PNPM lockfile, it doesn't have an export
command to do the opposite (like bun install --yarn
). I could only find a separate CLI utility that can generate an NPM lockfile from a PNPM lock file.
To mitigate this, I create a PR in the coparse-inc/action-electron-builder
repo to add support for PNPM: macro-inc/action-electron-builder#1
How to proceed
I see the following options:
- Wait for
coparse-inc
to merge our PR and release a new version ofcoparse-inc/action-electron-builder
- Use our own
action-electron-builder
by releasing it on GitHub Actions Marketplace - 👎 Switch yet to another package manager like Yarn or NPM
What are others using
While researching a solution for #5 most references I found for building electron apps on GitHub CI point to the same GitHub action samuelmeuli/action-electron-builder
. Ledger Live is also an Electron app in a monorepo that uses PNPM and they use their own scripts to build/sign/release.