-
Notifications
You must be signed in to change notification settings - Fork 927
Parallelized builds #3629
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Parallelized builds #3629
Conversation
💥 No ChangesetLatest commit: 4973cac Merging this PR will not cause any packages to be released. If these changes should not cause updates to packages in this repo, this is fine 🙂 If these changes should be published to npm, you need to add a changeset. This PR includes no changesetsWhen changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types Click here to learn what changesets are, and how to add one. Click here if you're a maintainer who wants to add a changeset to this PR |
b8d5b55
to
1f841b3
Compare
Binary Size ReportAffected SDKs
Test Logs |
09a5a6a
to
54fce67
Compare
The build doesn't seem faster on GA, but it is much faster for me locally. @samtstern - is it a lot of work to pull this into your branch that runs on GAE? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice. We can optimize the build process by only building the changed packages and their dependencies. I'm planning to work on it in the coming days.
@@ -36,7 +37,7 @@ const nodePlugins = [ | |||
target: 'es2017' | |||
} | |||
}, | |||
clean: true, | |||
cacheDir: tmp.dirSync(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it work? seems it creates a new dir every time, so the cache is not shared across builds.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe we already didn't take advantage of cached build because we had to use "clean". IIRC, the build cache didn't work for us since we do not always use the same transformers, and the cache was not aware of what transformers were used to build it. If I leave "clean: true" but use the same cache dir, the builds fail as they clobber one directory.
This changes the Firestore build pipeline to run in parallel for most operations.
Dedicated to @samtstern