# Copyright (c) 2022 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: ansible-collection-atmosphere-build-wheels-master
    parent: ansible-collection-atmosphere-build-wheels
    files: &build-wheels-files
      - roles/build_openstack_requirements/.*
      - zuul.d/wheels-master.yaml
    vars:
      build_openstack_requirements_release: master

- job:
    name: ansible-collection-atmosphere-build-wheels-master-amd64
    parent: ansible-collection-atmosphere-build-wheels-master
    nodeset: ubuntu-focal

- job:
    name: ansible-collection-atmosphere-build-wheels-master-aarch64
    parent: ansible-collection-atmosphere-build-wheels-master
    nodeset: ubuntu-focal-arm64

- job:
    name: ansible-collection-atmosphere-merge-wheels-master
    parent: ansible-collection-atmosphere-merge-wheels
    files: *build-wheels-files
    dependencies:
      - ansible-collection-atmosphere-build-wheels-master-amd64
      - ansible-collection-atmosphere-build-wheels-master-aarch64
    provides:
      - ansible-collection-atmosphere-wheels-master
    vars:
      build_openstack_requirements_release: master

- job:
    name: ansible-collection-atmosphere-promote-wheels-master
    parent: ansible-collection-atmosphere-promote-wheels
    files: *build-wheels-files
    vars:
      artifact_extra_name: wheels-master

- project:
    check:
      jobs:
        - ansible-collection-atmosphere-build-wheels-master-amd64
        - ansible-collection-atmosphere-build-wheels-master-aarch64
        - ansible-collection-atmosphere-merge-wheels-master
    gate:
      jobs:
        - ansible-collection-atmosphere-build-wheels-master-amd64
        - ansible-collection-atmosphere-build-wheels-master-aarch64
        - ansible-collection-atmosphere-merge-wheels-master
    promote:
      jobs:
        - ansible-collection-atmosphere-promote-wheels-master