build: build all images + run tests using them (#1069)
TODO
Add patches
Figure out why cache misses for Git clone (or something else)
diff --git a/zuul.d/container-images/nova.yaml b/zuul.d/container-images/nova.yaml
new file mode 100644
index 0000000..b78c251
--- /dev/null
+++ b/zuul.d/container-images/nova.yaml
@@ -0,0 +1,80 @@
+# Copyright (c) 2024 VEXXHOST, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+
+- project:
+ check:
+ jobs:
+ - atmosphere-build-container-image-nova
+ gate:
+ jobs:
+ - atmosphere-upload-container-image-nova
+ promote:
+ jobs:
+ - atmosphere-promote-container-image-nova
+
+- job:
+ name: atmosphere-build-container-image-nova
+ parent: atmosphere-build-container-image
+ dependencies:
+ - name: atmosphere-build-container-image-ubuntu
+ soft: true
+ - name: atmosphere-build-container-image-ubuntu-cloud-archive
+ soft: true
+ - name: atmosphere-build-container-image-python-base
+ soft: true
+ - name: atmosphere-build-container-image-openstack-venv-builder
+ soft: true
+ - name: atmosphere-build-container-image-openstack-python-runtime
+ soft: true
+ vars: &container_image_vars
+ promote_container_image_job: atmosphere-upload-container-image-nova
+ container_images:
+ - context: images/nova
+ repository: registry.atmosphere.dev/library/nova
+ arch:
+ - linux/amd64
+ build_args:
+ - PROJECT=nova
+ tags:
+ - zed
+ files: &container_image_files
+ - images/ubuntu/.*
+ - images/ubuntu-cloud-archive/.*
+ - images/python-base/.*
+ - images/openstack-venv-builder/.*
+ - images/openstack-python-runtime/.*
+ - images/nova/.*
+
+- job:
+ name: atmosphere-upload-container-image-nova
+ parent: atmosphere-upload-container-image
+ dependencies:
+ - name: atmosphere-upload-container-image-ubuntu
+ soft: true
+ - name: atmosphere-upload-container-image-ubuntu-cloud-archive
+ soft: true
+ - name: atmosphere-upload-container-image-python-base
+ soft: true
+ - name: atmosphere-upload-container-image-openstack-venv-builder
+ soft: true
+ - name: atmosphere-upload-container-image-openstack-python-runtime
+ soft: true
+ vars: *container_image_vars
+ files: *container_image_files
+
+- job:
+ name: atmosphere-promote-container-image-nova
+ parent: atmosphere-promote-container-image
+ vars: *container_image_vars
+ files: *container_image_files