afdo: Implement kernel afdo verification builders.
As a part of PUpr project, we need to move the publish of new
kernel profiles out of PFQ. This patch implements the builder that
performs the publish. More importantly, this builder adds a new
functionality that old PFQ doesn't have: we will take the latest
kernel profile, try to patch the ebuild, and build kernel to see
if there's any problem with profile, before publishing it.
The patch mainly generalized the functions for
orderfile-verify-toolchain builder to support both orderfile and
kernel AFDO profiles. And also uses new build API for future
transitions.
BUG=chromium:990855,chromium:984153
TEST=https://ci.chromium.org/p/chromeos/builders/general/Try/b8903406507089410256
Change-Id: I5695c4258420ead180943d22a8d1bfa207a3095e
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1763922
Tested-by: Tiancong Wang <tcwang@google.com>
Commit-Queue: Tiancong Wang <tcwang@google.com>
Reviewed-by: Evan Hernandez <evanhernandez@chromium.org>
diff --git a/api/controller/artifacts.py b/api/controller/artifacts.py
index 702b1d1..c6bde00 100644
--- a/api/controller/artifacts.py
+++ b/api/controller/artifacts.py
@@ -12,7 +12,7 @@
from chromite.api import controller
from chromite.api import validate
from chromite.api.controller import controller_util
-from chromite.api.gen.chromite.api import artifacts_pb2
+from chromite.api.gen.chromite.api import toolchain_pb2
from chromite.cbuildbot import commands
from chromite.lib import build_target_util
from chromite.lib import chroot_lib
@@ -391,8 +391,8 @@
output_proto.artifacts.add().path = archive
-_VALID_ARTIFACT_TYPES = [artifacts_pb2.BENCHMARK_AFDO,
- artifacts_pb2.ORDERFILE]
+_VALID_ARTIFACT_TYPES = [toolchain_pb2.BENCHMARK_AFDO,
+ toolchain_pb2.ORDERFILE]
@validate.require('build_target.name', 'output_dir')
@validate.is_in('artifact_type', _VALID_ARTIFACT_TYPES)
@validate.exists('output_dir')
@@ -414,7 +414,7 @@
chroot = controller_util.ParseChroot(input_proto.chroot)
try:
- is_orderfile = bool(artifact_type is artifacts_pb2.ORDERFILE)
+ is_orderfile = bool(artifact_type is toolchain_pb2.ORDERFILE)
results = artifacts.BundleAFDOGenerationArtifacts(
is_orderfile, chroot,
build_target, output_dir)