Open Bug 1408137 Opened 7 years ago Updated 2 years ago

Implement the equivalent of artifact builds with optimization

Categories

(Firefox Build System :: Task Configuration, task)

task

Tracking

(Not tracked)

People

(Reporter: dustin, Unassigned)

References

(Blocks 1 open bug)

Details

We have some stuff in-tree right now to allow --artifact in try pushes, which does some magic to avoid re-building. We should be able to do that automatically, using the optimization process. If nothing that requires a build has changed, find an existing build in the index and use that. This is a little tricky on try, where 'an existing build' may be corrupted. We already face that problem with toolchains and docker images, though, so perhaps we don't need to think too hard?
I've not self-assigned because (a) I don't especially want to own this and (b) I don't think now is a great time to make what could be a very breaking change.
IIRC we already have a few bugs on file to do artifact builds by default. I think a major blocker is not knowing the full set of files that can influence a build. This is obviously a prerequisite to the "automatically" part. Although with SCHEDULES.exclusive, I /think/ we can swap in an artifact build. Although with the current artifact build logic, we need to set up a cross-push task dependency. While possible, this is riddled with gotchas, such as a cancelled/failed build on a previous push resulting in tasks for another push not running. We could only do the artifact build swap if a previous build is complete though!
Blocks: fastci
All of our index-based optimizations only find successful, completed jobs. It means thundering herds are not optimal, but avoids all those gotchas.
Product: TaskCluster → Firefox Build System
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.