add fenix build task in CI that builds from the root gradle project
Categories
(Fenix :: Tooling, task, P1)
Tracking
(firefox134 fixed)
Tracking | Status | |
---|---|---|
firefox134 | --- | fixed |
People
(Reporter: jcristau, Assigned: adhingra)
References
(Blocks 1 open bug)
Details
(Whiteboard: [fxdroid][group3])
Attachments
(1 file, 1 obsolete file)
The current A-C/focus/fenix builds in CI depend on an upstream task for geckoview, and then use gradlew from a mobile/android subdirectory. We want to support building these projects directly from the root, to make things easier for e.g. geckoview or platform engineers. To avoid breaking that workflow we should have at least one task in CI that uses that configuration.
Comment 1•10 months ago
•
|
||
While we were connecting both the Android and the Gecko build systems, we broke the build from the top level directory. This part of the code base remains brittle. Let's add this CI task in the next cycle so we're immediately aware of the next breakage. This way, developers won't checkout the latest mozilla-central while not being able to build from the root directory anymore.
Edit: I just stumbled upon a more recent example: bug 1891130.
Updated•10 months ago
|
Updated•6 months ago
|
Assignee | ||
Comment 2•6 months ago
|
||
Assignee | ||
Updated•6 months ago
|
Updated•6 months ago
|
(In reply to Julien Cristau [:jcristau] from comment #0)
The current A-C/focus/fenix builds in CI depend on an upstream task for geckoview, and then use gradlew from a mobile/android subdirectory. We want to support building these projects directly from the root, to make things easier for e.g. geckoview or platform engineers. To avoid breaking that workflow we should have at least one task in CI that uses that configuration.
As Aadi works on this, and as I review, some fundamental questions have arisen.
Is the idea that we want to exercise mach build && gradlew fenix:assembleDebug
? If that's the case, I think hammering out https://bugzilla.mozilla.org/show_bug.cgi?id=1883086 and then adding a build
-kind task that does that Fenix and Focus makes the most sense. It's definitely not a toolchain task, and I don't really think it's a regular Android Gradle APK task either, since it's supposed to be exercising some of the GeckoView build.
If we don't really want to exercise the GeckoView build, and instead we want to fetch GeckoView from some other task (Maven artifacts), then that looks like an Android Gradle APK task. That's what Aadi has been pushing toward, and might justify some of the current patches choices that work around actually building GV.
:jcristau: NI to you for https://bugzilla.mozilla.org/show_bug.cgi?id=1884675#c3.
Reporter | ||
Comment 5•6 months ago
|
||
IIRC the aim was to have something close-ish to what a local build would do, to have coverage in CI for that flow and avoid breaking it unknowingly. So ideally it would include building geckoview, I think?
Comment 6•6 months ago
•
|
||
My understanding here (that might be wrong or incomplete) is that having the new task (fenix-debug-root
) build Fenix using geckoview built previously, as we do the the regular fenix-debug
task, would already represent what a local build would do.
The only difference I see is that it is broken down into two separate parts:
- building GeckoView and packaging the dependencies
- use the dependencies packaged in step 1) (including GeckoView) to build fenix from the root folder.
Is there something I'm missing? Are there differences that would justify having the fenix-debug-root
task both build GeckoView and build Fenix?
Assignee | ||
Comment 7•5 months ago
|
||
Updated•5 months ago
|
Updated•5 months ago
|
Updated•5 months ago
|
Comment 9•4 months ago
|
||
bugherder |
Description
•