# 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-chart-vendor
        - atmosphere-check-commit
        - atmosphere-golang-go-test
        - atmosphere-linters
        - atmosphere-tox-promtool-test
        - atmosphere-tox-helm-unittest
        - atmosphere-tox-py3
        - atmosphere-build-collection:
            dependencies: &image_build_jobs
              - name: atmosphere-build-container-image-barbican
                soft: true
              - name: atmosphere-build-container-image-cinder
                soft: true
              - name: atmosphere-build-container-image-designate
                soft: true
              - name: atmosphere-build-container-image-glance
                soft: true
              - name: atmosphere-build-container-image-heat
                soft: true
              - name: atmosphere-build-container-image-horizon
                soft: true
              - name: atmosphere-build-container-image-ironic
                soft: true
              - name: atmosphere-build-container-image-keepalived
                soft: true
              - name: atmosphere-build-container-image-keystone
                soft: true
              - name: atmosphere-build-container-image-kubernetes-entrypoint
                soft: true
              - name: atmosphere-build-container-image-libvirtd
                soft: true
              - name: atmosphere-build-container-image-magnum
                soft: true
              - name: atmosphere-build-container-image-manila
                soft: true
              - name: atmosphere-build-container-image-netoffload
                soft: true
              - name: atmosphere-build-container-image-neutron
                soft: true
              - name: atmosphere-build-container-image-nova
                soft: true
              - name: atmosphere-build-container-image-nova-ssh
                soft: true
              - name: atmosphere-build-container-image-octavia
                soft: true
              - name: atmosphere-build-container-image-openvswitch
                soft: true
              - name: atmosphere-build-container-image-ovn
                soft: true
              - name: atmosphere-build-container-image-placement
                soft: true
              - name: atmosphere-build-container-image-python-openstackclient
                soft: true
              - name: atmosphere-build-container-image-staffeln
                soft: true
              - name: atmosphere-build-container-image-tempest
                soft: true
        - atmosphere-molecule-aio-keycloak:
            dependencies: *image_build_jobs
        - atmosphere-molecule-aio-openvswitch:
            dependencies: *image_build_jobs
        - atmosphere-molecule-aio-ovn:
            dependencies: *image_build_jobs
        - atmosphere-molecule-csi-local-path-provisioner:
            dependencies: *image_build_jobs
        - atmosphere-molecule-csi-rbd:
            dependencies: *image_build_jobs
    gate:
      jobs:
        - atmosphere-chart-vendor
        - atmosphere-check-commit
        - atmosphere-golang-go-test
        - atmosphere-linters
        - atmosphere-tox-py3
        - atmosphere-build-collection:
            dependencies: *image_build_jobs
        - atmosphere-molecule-aio-keycloak:
            dependencies: *image_build_jobs
        - atmosphere-molecule-aio-openvswitch:
            dependencies: *image_build_jobs
        - atmosphere-molecule-aio-ovn:
            dependencies: *image_build_jobs
        - atmosphere-molecule-csi-local-path-provisioner:
            dependencies: *image_build_jobs
        - atmosphere-molecule-csi-rbd:
            dependencies: *image_build_jobs
    release:
      jobs:
        - atmosphere-publish-collection
    periodic:
      jobs:
        - atmosphere-molecule-aio-upgrade-openvswitch:
            dependencies: *image_build_jobs
        - atmosphere-molecule-aio-upgrade-ovn:
            dependencies: *image_build_jobs
    vars:
      container_registry: harbor.atmosphere.dev/library
