From b202f0ce19be32b41755cb17c9ec8aecfb668fc3 Mon Sep 17 00:00:00 2001 From: Ben Hearsum Date: Mon, 13 Feb 2023 21:41:30 +0000 Subject: [PATCH] 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 --- tools/tryselect/task_config.py | 4 ++-- tools/tryselect/test/test_fuzzy.t | 1 + tools/tryselect/test/test_task_configs.py | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/tryselect/task_config.py b/tools/tryselect/task_config.py index 5db1f9c90d93..07a39d39e9eb 100644 --- a/tools/tryselect/task_config.py +++ b/tools/tryselect/task_config.py @@ -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): diff --git a/tools/tryselect/test/test_fuzzy.t b/tools/tryselect/test/test_fuzzy.t index d3042b0fe78b..5f53c07c974e 100644 --- a/tools/tryselect/test/test_fuzzy.t +++ b/tools/tryselect/test/test_fuzzy.t @@ -168,6 +168,7 @@ Test task config Pushed via `mach try fuzzy` Calculated try_task_config.json: { + "disable-pgo": true, "env": { "TRY_SELECTOR": "fuzzy" }, diff --git a/tools/tryselect/test/test_task_configs.py b/tools/tryselect/test/test_task_configs.py index 6c0eeadaa678..4865a1bfca6b 100644 --- a/tools/tryselect/test/test_task_configs.py +++ b/tools/tryselect/test/test_task_configs.py @@ -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),