Bug 1816440: ./mach try ... --artifact should imply --disable-pgo r=releng-reviewers,jcristau

Currently, ./mach try ... --artifact only affects non-shippable (aka PGO) builds. This is fine for many use cases, but there are a number of tasks that depend exclusively on shippable builds, and it's when testing those types of tasks it usually doesn't matter if you have a full build, or whether or not it's PGO. --disable-pgo partly does this: it disables the profile run and instrumented build parts of shippable builds. When combined with --artifact, you end up with a single, artifact build - exactly what we want!

We should make this the default behaviour for --artifact. It's very surprising behaviour to pass --artifact and end up with a full, 2 stage build because you happen to be testing something that needs a shippable build.

Differential Revision: https://phabricator.services.mozilla.com/D169640
This commit is contained in:
Ben Hearsum 2023-02-13 21:41:30 +00:00
Родитель ba0970df38
Коммит b202f0ce19
3 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -78,14 +78,14 @@ class Artifact(TryConfig):
def try_config(self, artifact, no_artifact, **kwargs):
if artifact:
return {"use-artifact-builds": True}
return {"use-artifact-builds": True, "disable-pgo": True}
if no_artifact:
return
if self.is_artifact_build():
print("Artifact builds enabled, pass --no-artifact to disable")
return {"use-artifact-builds": True}
return {"use-artifact-builds": True, "disable-pgo": True}
class Pernosco(TryConfig):

Просмотреть файл

@ -168,6 +168,7 @@ Test task config
Pushed via `mach try fuzzy`
Calculated try_task_config.json:
{
"disable-pgo": true,
"env": {
"TRY_SELECTOR": "fuzzy"
},

Просмотреть файл

@ -15,7 +15,7 @@ from tryselect.task_config import Pernosco, all_task_configs
TASK_CONFIG_TESTS = {
"artifact": [
(["--no-artifact"], None),
(["--artifact"], {"use-artifact-builds": True}),
(["--artifact"], {"use-artifact-builds": True, "disable-pgo": True}),
],
"chemspill-prio": [
([], None),