Closed Bug 1178247 Opened 9 years ago Closed 9 years ago

Create a mach target for the automation/build build steps (in particular, startup-cache generation, installer building, etc.)

Categories

(Firefox Build System :: Mach Core, enhancement)

enhancement
Not set
normal

Tracking

(firefox42 affected)

RESOLVED WORKSFORME
Tracking Status
firefox42 --- affected

People

(Reporter: Gijs, Unassigned)

Details

It would be nice if I didn't need to do a no-op build step in order to redo the omni.ja/installer/startup-cache/signing goop on a build machine. It would also be nice if there was a way to do this on a local machine that didn't involve defining MOZ_AUTOMATION (and avoided running the bits that are really automation-specific, like the file upload to S3/wherever).
What you're asking for exists already: mach package.
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → WORKSFORME
(In reply to Mike Hommey [:glandium] from comment #1)
> What you're asking for exists already: mach package.

What's the difference with the MOZ_AUTOMATION-enabled automation/build portion of ./mach build ? If nothing, can we remove the automation/build thing and just make the build run ./mach package ?

Does mach package really also precompile the startup cache? The recent m.d.platform thread led me to believe it doesn't... (but maybe I'm wrong?)

My basic issue here is threefold:

1) ./mach build with/without MOZ_AUTOMATION does very different things. This is somewhat confusing/problematic from an engineering perspective.
2) this makes it hard to replicate automation builds on a local machine
3) once on the automation machine, there is no way to run just the automation/build portion of the build, I have to run a straight mach build, which on the Windows machine takes a Long Time to just traverse the objdir and do essentially nothing.
Flags: needinfo?(mh+mozilla)
(In reply to :Gijs Kruitbosch from comment #2)
> (In reply to Mike Hommey [:glandium] from comment #1)
> > What you're asking for exists already: mach package.
> 
> What's the difference with the MOZ_AUTOMATION-enabled automation/build
> portion of ./mach build ? If nothing, can we remove the automation/build
> thing and just make the build run ./mach package ?

automation/build does package, creates test zips, creates crash symbols, uploads stuff to the ftp/s3, etc. Those are things 99% of people don't care to do locally.

> Does mach package really also precompile the startup cache?

Yes. There is no difference between the package step of automation/build and mach package.

> My basic issue here is threefold:
> 
> 1) ./mach build with/without MOZ_AUTOMATION does very different things. This
> is somewhat confusing/problematic from an engineering perspective.

Because one is for automation only.

> 2) this makes it hard to replicate automation builds on a local machine

Depends what you're trying to replicate. Most people don't care to replicate all the steps that happen after the build. And when they do, they usually don't need more than mach package.

> 3) once on the automation machine, there is no way to run just the
> automation/build portion of the build, I have to run a straight mach build,
> which on the Windows machine takes a Long Time to just traverse the objdir
> and do essentially nothing.

MOZ_AUTOMATION=1 mach build "just" runs 2 make commands instead of one. You can replicate the second one either with make -C objdir automation/build, or, better, mach build -C . automation/build.
Flags: needinfo?(mh+mozilla)
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.