Open Bug 1358179 Opened 8 years ago Updated 3 years ago

Incorporate artifact builds on try into the task graph

Categories

(Firefox Build System :: General, enhancement)

enhancement

Tracking

(Not tracked)

People

(Reporter: chmanchester, Unassigned)

References

(Blocks 1 open bug)

Details

Currently, taskcluster is not involved with the way we replace regular builds with artifact builds on try. Ideally this would be handled in the task graph. There are at least two main pieces to this with their own benefits. The first is doing the replacement in the decision task, which will allow us to give artifact builds a different symbol in treeherder, will allow us to ensure only certain eligible build types are replaced with artifact builds, and will allow us to only schedule applicable tests against these builds (we would not schedule gtests or cppunittests, for instance). The second is triggering replacement of a regular build with an artifact build automatically under some circumstances based on the files touched by a changeset. Done too aggressively this will cause confusion and frustration, but some heuristics will be reliable here. For instance, if only html or js test files are modified, we should be able to test that change using an artifact build.
An alternative approach to replacing the build task wholesale is to create a "copy" of the sub-graph for the artifact "branch." Then the decision task can prune whatever tasks aren't appropriate. We could then annotate tasks depending on build tasks with whether they are compatible with artifact builds or not. I'm not sure this is better. Just something to consider. Also, CCing Dustin because I'm sure he has opinions.
The thing I want to avoid is having tasks that dynamically look up the artifact they should use - the artifact should be a parameter to the task. My thinking was to break the "build" kind up into, say, "compile" and "assemble" kinds. Then optimize the compile tasks when they do not need to re-run. So when only JS or other artifact-compatible changes occur, we the assemble task would depend on a pre-existing compile task.
Product: Core → Firefox Build System
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.