# 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-images
    pre-run: zuul.d/playbooks/build-images/pre.yml
    run: zuul.d/playbooks/build-images/run.yml

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

- 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

- job:
    name: atmosphere-molecule-keycloak
    parent: atmosphere-molecule
    pre-run: zuul.d/playbooks/molecule-keycloak/pre.yml
    vars:
      tox_envlist: molecule-keycloak

- 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
    timeout: 7200
    pre-run: zuul.d/playbooks/molecule-aio/pre.yml
    post-run: zuul.d/playbooks/molecule-aio/post.yml
    roles:
      - zuul: openstack/openstack-helm-infra
    nodeset:
      nodes:
        - name: ubuntu-jammy
          label: jammy-16c-64g

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

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