Skip to content

chore(refactor): explore parallelization of builds#8962

Merged
mmaietta merged 16 commits intomasterfrom
explore/async-packaging
Mar 26, 2025
Merged

chore(refactor): explore parallelization of builds#8962
mmaietta merged 16 commits intomasterfrom
explore/async-packaging

Conversation

@mmaietta
Copy link
Copy Markdown
Collaborator

Allow targets to be executed in parallel for those that do not include locking of resources (macos dmg: hdiutil, win: squirrel/nsis/msi signing, etc)

Adds a massive ConcurrentBuildsTest suite for making sure all assets are produced correctly and to measure speed improvements against

Implements #8888

CC @xyloflake if you're willing to be an early adopter of the experimental implementation

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Mar 16, 2025

🦋 Changeset detected

Latest commit: 6bcde34

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 10 packages
Name Type
app-builder-lib Patch
builder-util Patch
dmg-builder Patch
electron-builder-squirrel-windows Patch
electron-builder Patch
electron-forge-maker-appimage Patch
electron-forge-maker-nsis-web Patch
electron-forge-maker-nsis Patch
electron-forge-maker-snap Patch
electron-publish Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@xyloflake
Copy link
Copy Markdown
Contributor

looks great! will make efforts to implement this for us!
cc @staniel359 @gamersi

@mmaietta mmaietta requested a review from beyondkmp March 16, 2025 21:21
@mmaietta mmaietta marked this pull request as ready for review March 16, 2025 21:50
Comment thread packages/app-builder-lib/src/targets/nsis/NsisTarget.ts Outdated
Comment thread packages/app-builder-lib/src/packager.ts
@beyondkmp
Copy link
Copy Markdown
Contributor

LGTM

@mmaietta mmaietta merged commit 106640d into master Mar 26, 2025
@mmaietta mmaietta deleted the explore/async-packaging branch March 26, 2025 15:53
@github-actions github-actions Bot mentioned this pull request Mar 26, 2025
@mmaietta
Copy link
Copy Markdown
Collaborator Author

@xyloflake have you been able to try this feature out? Curious how well it's working for you :)

@xyloflake
Copy link
Copy Markdown
Contributor

@xyloflake have you been able to try this feature out? Curious how well it's working for you :)

@mmaietta hey. Sorry, haven't been able to test it yet, I should be able to do it soon since my examinations end tomorrow. For the record, what do I have to do to test this? Is it in the official builds already?

@beyondkmp
Copy link
Copy Markdown
Contributor

@mmaietta I thought of a potential issue: if you run electron-builder --win --x64 --arm64 on a single machine to build both x64 and arm64 simultaneously while enabling parallel processing, there could be problems. During npm rebuild, is it possible that the native module for arm64 could end up being packaged into the x64 build?

@mmaietta
Copy link
Copy Markdown
Collaborator Author

mmaietta commented Apr 18, 2025

IIRC, the native compilation step happens before the parallel processing of the packaging async processing, but I can double check @beyondkmp

@xyloflake it's in the most recent release under 26.0.13 IIRC. Just add concurrency.jobs = <any number> to your config

@xyloflake
Copy link
Copy Markdown
Contributor

@mmaietta I've started working on this. Just repatching and making sure everything works before proceeding. Will update on this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

suggestion: parallel builds

3 participants