Repository navigation
Misc improvements for the bug fix Docker image - #7110
Merged
Merged
Conversation
marco-c
force-pushed
the
better_docker_image
branch
9 times, most recently
from
October 10, 2026 22:54
d8a5580 to
859f67f
Compare
marco-c
force-pushed
the
better_docker_image
branch
2 times, most recently
from
October 12, 2026 12:36
f2c0d95 to
9f28ce5
Compare
padenot
reviewed
Oct 12, 2026
marco-c
force-pushed
the
better_docker_image
branch
2 times, most recently
from
October 12, 2026 22:42
29b82ec to
e9540b1
Compare
marco-c
marked this pull request as ready for review
October 13, 2026 08:37
marco-c
force-pushed
the
better_docker_image
branch
from
October 14, 2026 10:52
e9540b1 to
08fb2a6
Compare
canova
reviewed
Oct 14, 2026
canova
left a comment
Member
There was a problem hiding this comment.
Ah great that we are adding profiler-cli to hackbot! I would also prefer the npm install option as oppose to fetching it. But I would prefer the solution in bug 2058493 over both, but we are still not ready to land that one. So as an interim solution we can go with this. But I would prefer to file issues/bugs so we can keep track of this work.
canova
reviewed
Oct 14, 2026
Collaborator
Author
|
Thanks @canova for the insights. Depending on when your bug is fixed, I'll either land this first and update the image later, or update the PR first. |
Collaborator
Author
|
Same thing for https://bugzilla.mozilla.org/show_bug.cgi?id=2080915. |
suhaibmujahid
approved these changes
Oct 15, 2026
suhaibmujahid
left a comment
Member
There was a problem hiding this comment.
LGTM! My comments aren’t blockers, so we can file follow-ups if we’d rather not address them now.
marco-c
force-pushed
the
better_docker_image
branch
from
October 15, 2026 22:27
08fb2a6 to
9d8d69a
Compare
This was referenced Oct 15, 2026
marco-c
force-pushed
the
better_docker_image
branch
from
October 15, 2026 23:40
9d8d69a to
9148eb6
Compare
Install the build prerequisites and Firefox runtime dependencies that `mach bootstrap` cannot install itself (it runs unprivileged), along with the fonts, debug symbols and audio setup Firefox's own CI test images use. An entrypoint starts Xvfb, a D-Bus session and PipeWire, so Firefox launched from the agent's shell has a display and a working audio device. Add gdb, strace, ripgrep, jq and sqlite3 for debugging, uv, and profiler-cli, which with the bootstrapped samply and profiler-edit (also put on PATH, as is node) is what the Firefox tree's profiling skills use. Set a git identity matching hackbot_runtime's, so the agent's own `git commit` and `git stash` work. ffpuppet looks up minidump-stackwalk only when it is imported, before bootstrap has installed it, so crashes caught by evaluate_testcase came back without a stack. bootstrap_firefox now points ffpuppet at the bootstrapped copy. It also installs the developer tools (treeherder-cli, searchfox-cli, ...) that non-interactive bootstrap skips. Build the JS shell too, which desktop builds skip, so evaluate_js_shell has one to run. Add opt-in smoke tests for the image (BUG_FIX_IMAGE=<image>), covering the entrypoint services, tools, evaluate_testcase with and without a crash and, with BUG_FIX_IMAGE_SLOW=1, bootstrap, configure and running tests.
Build the agent image with podman in a privileged task, as taskboot does but with the non-final target taskboot cannot select, and run the tests inside it as a task image. The tests gain a mode where they check the container they run in. After merges to master that change the image or what goes into it, slower tests bootstrap Firefox, make an artifact build and a full build with the agent's mozconfig, and run tests in them.
Keep podman's storage in a Taskcluster cache, so a build reuses the layers that didn't change. Install the Python environment last in the agent stage, so the system packages layers survive Python changes.
bootstrap_firefox (and its tool) take the application to bootstrap for, so the agent can install the JDK and Android SDK and NDK an Android build needs, and link their versioned directories under stable names the image puts on PATH (java, adb, aapt2, apksigner, apkanalyzer, lint, sdkmanager). Bootstrapping for Android also writes a mozconfig for it, which build_firefox then builds with, until bootstrapping for desktop again. The agent's prompt explains how to build and test Android code without the emulator, which isn't available. Fixes mozilla#7067
After merges to master that change the image, bootstrap a Firefox checkout for Android the way the agent does, make an artifact build, inspect and verify the APKs it builds, run android-components unit tests through `mach gradle`, and check the Android formatter catches and fixes misformatted code.
marco-c
force-pushed
the
better_docker_image
branch
from
October 16, 2026 08:22
9148eb6 to
68fb0bc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.