artifacts: Die gracefully if artifacts don't exist

TEST=./run_tests
BUG=chromium:949566

Change-Id: I79a3ddbf8bfa9a632c902437328c88390fc64a4d
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/1559659
Tested-by: Evan Hernandez <evanhernandez@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>
diff --git a/api/controller/artifacts.py b/api/controller/artifacts.py
index 6af122c..aabd513 100644
--- a/api/controller/artifacts.py
+++ b/api/controller/artifacts.py
@@ -132,6 +132,11 @@
   # TODO(saklein): Replace with a chromite/service implementation.
   archive = commands.BuildTastBundleTarball(build_root, cwd, output_dir)
 
+  if archive is None:
+    cros_build_lib.Die(
+        'Could not bundle Tast files. '
+        'No Tast directories found for %s.', target)
+
   output_proto.artifacts.add().path = archive
 
 
@@ -150,6 +155,11 @@
   archive = commands.BuildPinnedGuestImagesTarball(build_root, target,
                                                    output_dir)
 
+  if archive is None:
+    cros_build_lib.Die(
+        'Could not bundle pinned guest images. '
+        'No relevant files found for %s.', target)
+
   output_proto.artifacts.add().path = os.path.join(output_dir, archive)
 
 
@@ -167,6 +177,10 @@
   # TODO(saklein): Replace with a chromite/service implementation.
   archive = commands.BuildFirmwareArchive(build_root, target, output_dir)
 
+  if archive is None:
+    cros_build_lib.Die(
+        'Could not create firmware archive. No firmware found for %s.', target)
+
   output_proto.artifacts.add().path = os.path.join(output_dir, archive)
 
 
@@ -187,4 +201,8 @@
   # TODO(saklein): Replace with a chromite/service implementation.
   archive = commands.BuildEbuildLogsTarball(build_root, target, output_dir)
 
+  if archive is None:
+    cros_build_lib.Die(
+        'Could not create ebuild logs archive. No logs found for %s.', target)
+
   output_proto.artifacts.add().path = os.path.join(output_dir, archive)