# 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.

- job:
    name: atmosphere-build-collection
    pre-run: zuul.d/playbooks/build-collection/pre.yml
    run: zuul.d/playbooks/build-collection/run.yml

- job:
    name: atmosphere-publish-collection
    parent: atmosphere-build-collection
    post-run: zuul.d/playbooks/build-collection/publish.yml
    secrets:
      - ansible_galaxy_info

- job:
    name: atmosphere-buildset-registry
    pre-run: zuul.d/playbooks/buildset-registry/pre.yml
    run: zuul.d/playbooks/buildset-registry/run.yml
    ansible-split-streams: true

- job:
    name: atmosphere-upload-images
    parent: atmosphere-buildset-registry
    run: zuul.d/playbooks/buildset-registry/run.yml
    secrets:
      - registry_credentials
      - cosign_key

- job:
    name: atmosphere-molecule
    parent: tox
    abstract: true
    pre-run: zuul.d/playbooks/molecule/pre.yml
    run: zuul.d/playbooks/molecule/run.yml
    post-run: zuul.d/playbooks/molecule/post.yml
    dependencies:
      - atmosphere-buildset-registry

- job:
    name: atmosphere-molecule-csi
    parent: atmosphere-molecule
    abstract: true

- job:
    name: atmosphere-molecule-csi-local-path-provisioner
    parent: atmosphere-molecule-csi
    vars:
      tox_envlist: molecule-csi-local-path-provisioner

- job:
    name: atmosphere-molecule-csi-rbd
    parent: atmosphere-molecule-csi
    vars:
      tox_envlist: molecule-csi-rbd

- job:
    name: atmosphere-molecule-aio
    parent: atmosphere-molecule
    abstract: true
    pre-run: zuul.d/playbooks/molecule-aio/pre.yml
    post-run: zuul.d/playbooks/molecule-aio/post.yml
    roles:
      - zuul: openstack/openstack-helm-infra

- job:
    name: atmosphere-molecule-aio-keycloak
    parent: atmosphere-molecule-aio
    vars:
      tox_envlist: molecule-keycloak

- job:
    name: atmosphere-molecule-aio-full
    parent: atmosphere-molecule-aio
    abstract: true
    timeout: 7200
    nodeset:
      nodes:
        - name: ubuntu-jammy
          label: jammy-16c-64g

- job:
    name: atmosphere-molecule-aio-openvswitch
    parent: atmosphere-molecule-aio-full
    vars:
      tox_envlist: molecule-aio-openvswitch

- job:
    name: atmosphere-molecule-aio-ovn
    parent: atmosphere-molecule-aio-full
    # NOTE(mnaser): https://github.com/vexxhost/atmosphere/issues/662
    voting: false
    vars:
      tox_envlist: molecule-aio-ovn
