-
Notifications
You must be signed in to change notification settings - Fork 26.6k
build(devtools): add hermetic release build environment #63302
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
base: main
Are you sure you want to change the base?
Conversation
Oh dammit, apparently you can't install it on Mac (I swear I saw a |
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.
LGTM
Just one little nit comment to consider
1f0d759
to
e75c517
Compare
Build verification for Mozilla Add Ons has been incredibly inconsistent with difficulties getting the information necessary to debug. This uses `podman` as a hermetic build environment to create something a little more reliable and consistent between Angular developers and Mozilla reviewers. I opted for `podman` over Docker because the latter requires some extra approvals we don't want to deal with (see http://go/vm-exception). It ultimately works with the containerfile format, so the DX is fairly comparable to Docker. The hardest part was getting Node installed, as `nvm install` just wouldn't work for reasons I couldn't figure out. Instead, I manually downloaded it using the same version from `.nvmrc`. I didn't update the release docs as I suspect it would be somewhat reudundant to ask Angular caretakers to go through this process and it significantly hurts build times since remote builds aren't configured. If we find discrepancies between local builds and the `podman` builds, then we might want to re-evaluate that decision. I validated by performing a release build with and without `podman` and confirming that the extracted ZIP files are identical for both Chrome and Firefox. I also included this build as a CI task, since we want to make sure this remains stable for Mozilla reviewers.
e75c517
to
47327c4
Compare
Ok, I switched over to |
Build verification for Mozilla Add Ons has been incredibly inconsistent with difficulties getting the information necessary to debug. This uses
podman
as a hermetic build environment to create something a little more reliable and consistent between Angular developers and Mozilla reviewers.I opted for
podman
over Docker because the latter requires some extra approvals we don't want to deal with (see http://go/vm-exception). It ultimately works with the containerfile format, so the DX is fairly comparable to Docker. The hardest part was getting Node installed, asnvm install
just wouldn't work for reasons I couldn't figure out. Instead, I manually downloaded it using the same version from.nvmrc
.I didn't update the release docs as I suspect it would be somewhat reudundant to ask Angular caretakers to go through this process and it significantly hurts build times since remote builds aren't configured. If we find discrepancies between local builds and the
podman
builds, then we might want to re-evaluate that decision. I validated by performing a release build with and withoutpodman
and confirming that the extracted ZIP files are identical for both Chrome and Firefox.I also included this build as a CI task, since we want to make sure this remains stable for Mozilla reviewers.
@jkrems, before we merge this, can you pull the PR and make sure it works for you on Mac? I tried to keep it as simple as possible, but I think there's a reasonable risk of the Bash being non-portable to Mac, so I want to make sure that gets sorted.