Skip to content

Conversation

dgp1130
Copy link
Contributor

@dgp1130 dgp1130 commented Aug 21, 2025

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.

@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.

@dgp1130 dgp1130 requested a review from jkrems August 21, 2025 00:05
@dgp1130 dgp1130 added area: build & ci Related the build and CI infrastructure of the project action: review The PR is still awaiting reviews from at least one requested reviewer target: patch This PR is targeted for the next patch release area: devtools labels Aug 21, 2025
@ngbot ngbot bot added this to the Backlog milestone Aug 21, 2025
@dgp1130 dgp1130 requested a review from josephperrott August 21, 2025 00:06
@dgp1130
Copy link
Contributor Author

dgp1130 commented Aug 21, 2025

Oh dammit, apparently you can't install it on Mac (I swear I saw a brew install buildah at some point). I think I'll need to re-evaluate this then. 🤦

@dgp1130 dgp1130 marked this pull request as draft August 21, 2025 00:10
Copy link
Member

@josephperrott josephperrott left a 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

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.
@dgp1130
Copy link
Contributor Author

dgp1130 commented Aug 27, 2025

Ok, I switched over to podman which I think should be more xplat-friendly and works with a containerfile, which I suspect will be more maintainable due to a bit more familiarity and documentation about how it works.

@dgp1130 dgp1130 marked this pull request as ready for review August 27, 2025 22:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
action: review The PR is still awaiting reviews from at least one requested reviewer area: build & ci Related the build and CI infrastructure of the project area: devtools target: patch This PR is targeted for the next patch release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants