- secret:
    name: grafyaml-dockerhub
    data:
      username: opendevzuul
      password: !encrypted/pkcs1-oaep
        - bbW9hdHj1GzhXJky9VkO/FKqiwWJDvaJGn+z/rB/i4ssGu8keRiFCEXHBzzioDe9OWlux
          aFNz1T3x7cUlWMEQ0ZDvD7GeQ9dRSo3lWctoS0P4iMClmZKjMDI+TSuLdVg2GlH6CtMiH
          b0Flw5j4BsP2VtbN71KOs+J8ybLVYivdAJmDGVST4gBBI1vL5RHIMr98BEx7oGqcB+h/1
          FtRIWqCjWr+Jvj6C+rdGKiocb77sJyFfZ1X7H97o5TETQeYs118kBP0iWv5FksoflUQU0
          cckE6u0oDrPx/4ea3pqKPLD9/B8/vAX+WUd1y2jUnmUmZvnEeTxekjXFUTrCVLqZc1FTC
          ZbbL/CQc/25QOI7sEeUigcYkPINhs6OsEe36gE2fKIjWEdVdunNOMxeQ/RS86OttzGlcP
          x+ADrUTQjkuEnxZo2WTYL4kHuzPr3//DsPjLJBq8hoKXlT3fpdH5pHaiVBC3oIVCWfzSa
          1LfX7XL0eFIwEc99gAfbfhljE9P77ZWX2zD9reyNNH4VCI9u92RKF5+VZ5ResOdOA0z0r
          sMYue1hqHYLLQq9O42t3PBfVMrS1V+GcJ8oWn+9sOll16kQw+wVpLmba/0Btdq0MSdWxc
          itrO3WwA2kqDd6qtHYAd0c9BEx8HDt66Rl56AN30LBtPRTdhNc93QDDJlPvqZE=

- job:
    name: grafyaml-build-image
    parent: opendev-build-docker-image
    description: Build a Docker image of grafyaml
    allowed-projects: opendev/grafyaml
    timeout: 2700
    requires:
      - python-builder-3.10-bullseye-container-image
      - python-base-3.10-bullseye-container-image
    provides:
      - grafyaml-container-image
    dependencies:
      - opendev-buildset-registry
    vars: &grafyaml_image_vars
      docker_images:
        - context: .
          repository: opendevorg/grafyaml
          tags:
            &imagetag "{{ zuul.tag is defined | ternary([zuul.get('tag', '').split('.')[0], '.'.join(zuul.get('tag', '').split('.')[:2]), zuul.get('tag', '')], ['latest']) }}"

- job:
    name: grafyaml-upload-image
    parent: opendev-upload-docker-image
    description: Build the grafyaml Docker image and upload to Docker Hub.
    timeout: 3600
    requires:
      - python-builder-3.10-bullseye-container-image
      - python-base-3.10-bullseye-container-image
    provides: grafyaml-container-image
    vars: *grafyaml_image_vars
    secrets:
      - name: docker_credentials
        secret: grafyaml-dockerhub
        pass-to-parent: true

- job:
    name: grafyaml-promote-image
    parent: opendev-promote-docker-image
    description: Promote previously uploaded Docker image.
    vars: *grafyaml_image_vars
    secrets:
      - name: docker_credentials
        secret: grafyaml-dockerhub
        pass-to-parent: true

- project:
    vars:
      release_python: python3
    check:
      jobs:
        - tox-pep8
        - tox-py310:
            nodeset: ubuntu-jammy
        - opendev-buildset-registry
        - grafyaml-build-image
        - project-config-grafana
    gate:
      jobs:
        - tox-pep8
        - tox-py310:
            nodeset: ubuntu-jammy
        - grafyaml-upload-image
    promote:
      jobs:
        - grafyaml-promote-image
    release:
      jobs:
        - upload-docker-image:
            secrets:
              name: docker_credentials
              secret: grafyaml-dockerhub
              pass-to-parent: true
            vars:
              <<: *grafyaml_image_vars
              upload_docker_image_promote: false