---
- project:
    project: 'releng-xci'

    name: 'bifrost-periodic'
    # -------------------------------
    # Branch Anchors
    # -------------------------------
    # the versions stated here default to branches which then later
    # on used for checking out the branches, pulling in head of the branch.
    master: &master
      stream: master
      openstack-bifrost-version: '{stream}'
      opnfv-releng-version: 'master'
      gs-pathname: ''
    ocata: &ocata
      stream: ocata
      openstack-bifrost-version: 'stable/{stream}'
      opnfv-releng-version: 'master'
      gs-pathname: '/{stream}'
    # -------------------------------
    #        XCI PODs
    # -------------------------------
    pod:
      - virtual:
          <<: *master
      - virtual:
          <<: *ocata
    # -------------------------------
    # XCI PODs
    # -------------------------------
    # -------------------------------
    # Supported Distros
    # -------------------------------
    distro:
      - 'xenial':
          disabled: false
          slave-label: xci-xenial-virtual
          dib-os-release: 'xenial'
          dib-os-element: 'ubuntu-minimal'
          # yamllint disable rule:line-length
          dib-os-packages: 'vlan,vim,less,bridge-utils,sudo,language-pack-en,iputils-ping,rsyslog,curl,python,debootstrap,ifenslave,ifenslave-2.6,lsof,lvm2,tcpdump,nfs-kernel-server,chrony,iptables'
          # yamllint enable rule:line-length
          extra-dib-elements: 'openssh-server'
      - 'centos7':
          disabled: true
          slave-label: xci-centos7-virtual
          dib-os-release: '7'
          dib-os-element: 'centos7'
          dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
          extra-dib-elements: 'openssh-server'
      - 'suse':
          disabled: true
          slave-label: xci-suse-virtual
          dib-os-release: '42.3'
          dib-os-element: 'opensuse-minimal'
          dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
          extra-dib-elements: 'openssh-server'

    # -------------------------------
    # jobs
    # -------------------------------
    jobs:
      - 'bifrost-provision-{pod}-{distro}-periodic-{stream}'

# -------------------------------
# job templates
# -------------------------------
- job-template:
    name: 'bifrost-provision-{pod}-{distro}-periodic-{stream}'

    disabled: '{obj:disabled}'

    concurrent: false

    properties:
      - build-blocker:
          use-build-blocker: true
          blocking-jobs:
            - '^xci-os.*'
            - '^xci-deploy.*'
            - '^xci-functest.*'
            - '^bifrost-.*periodic.*'
            - '^osa-.*periodic.*'
          block-level: 'NODE'
      - logrotate-default

    parameters:
      - project-parameter:
          project: '{project}'
          branch: '{opnfv-releng-version}'
      - string:
          name: GIT_BASE
          default: https://gerrit.opnfv.org/gerrit/$PROJECT
      - string:
          name: XCI_FLAVOR
          default: 'ha'
      - string:
          name: OPENSTACK_BIFROST_VERSION
          default: '{openstack-bifrost-version}'
      - string:
          name: OPNFV_RELENG_VERSION
          default: '{opnfv-releng-version}'
      - string:
          name: DISTRO
          default: '{distro}'
      - string:
          name: DIB_OS_RELEASE
          default: '{dib-os-release}'
      - string:
          name: DIB_OS_ELEMENT
          default: '{dib-os-element}'
      - string:
          name: DIB_OS_PACKAGES
          default: '{dib-os-packages}'
      - string:
          name: EXTRA_DIB_ELEMENTS
          default: '{extra-dib-elements}'
      - string:
          name: CLEAN_DIB_IMAGES
          default: 'true'
      - label:
          name: SLAVE_LABEL
          default: '{slave-label}'
      - string:
          name: CI_LOOP
          default: 'periodic'

    wrappers:
      - fix-workspace-permissions

    scm:
      - git-scm

    # trigger is disabled until we know which jobs we will have
    # and adjust stuff accordingly
    triggers:
      - timed: ''  # '@midnight'

    builders:
      - description-setter:
          description: "Built on $NODE_NAME - Flavor: $XCI_FLAVOR"
      - 'bifrost-provision-builder'

# --------------------------
# builder macros
# --------------------------
- builder:
    name: bifrost-provision-builder
    builders:
      - shell:
          !include-raw: ./bifrost-provision.sh