Add artifact support for factory_image.zip
BUG=b:200195058
TEST=new unit test
Change-Id: I72d746946046725725da673865c068f0efdf0fbd
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3154286
Tested-by: Jack Neus <jackneus@google.com>
Commit-Queue: Jack Neus <jackneus@google.com>
Reviewed-by: Alex Klein <saklein@chromium.org>
Reviewed-by: George Engelbrecht <engeg@google.com>
diff --git a/api/controller/image.py b/api/controller/image.py
index 257c870..7a42a56 100644
--- a/api/controller/image.py
+++ b/api/controller/image.py
@@ -11,7 +11,8 @@
import functools
import logging
import os
-from typing import List, NamedTuple, Set, TYPE_CHECKING, Union
+from pathlib import Path
+from typing import List, NamedTuple, Set, Union
from chromite.api import controller
from chromite.api import faux
@@ -25,13 +26,11 @@
from chromite.lib import cros_build_lib
from chromite.lib import image_lib
from chromite.lib import sysroot_lib
+from chromite.service import packages as packages_service
from chromite.scripts import pushimage
from chromite.service import image
from chromite.utils import metrics
-if TYPE_CHECKING:
- from pathlib import Path
-
# The image.proto ImageType enum ids.
_BASE_ID = common_pb2.IMAGE_TYPE_BASE
_DEV_ID = common_pb2.IMAGE_TYPE_DEV
@@ -164,14 +163,24 @@
"""
base_path = chroot.full_path(sysroot_class.path)
board = build_target.name
+ factory_shim_location = Path(
+ image_lib.GetLatestImageLink(board, pointer=LOCATION_FACTORY)).resolve()
generated = []
dlc_func = functools.partial(image.copy_dlc_image, base_path)
license_func = functools.partial(
image.copy_license_credits, board, symlink=LOCATION_CORE)
+ factory_image_func = functools.partial(
+ image.create_factory_image_zip,
+ chroot,
+ sysroot_class,
+ factory_shim_location,
+ packages_service.determine_full_version(),
+ )
artifact_types = {
in_proto.ArtifactType.DLC_IMAGE: dlc_func,
in_proto.ArtifactType.LICENSE_CREDITS: license_func,
+ in_proto.ArtifactType.FACTORY_IMAGE: factory_image_func,
}
for output_artifact in in_proto.output_artifacts: