---
- project:
    name: 'openstack-bifrost-verify'
    # -------------------------------
    # branches
    # -------------------------------
    stream:
      - master:
          branch: '{stream}'
    # -------------------------------
    # distros
    # -------------------------------
    distro:
      - 'xenial':
          disabled: false
          dib-os-release: 'xenial'
          dib-os-element: 'ubuntu-minimal'
          dib-os-packages: 'vlan,vim,less,bridge-utils,language-pack-en,iputils-ping,rsyslog,curl'
          extra-dib-elements: 'openssh-server'
      - 'centos7':
          disabled: false
          dib-os-release: '7'
          dib-os-element: 'centos-minimal'
          dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
          extra-dib-elements: 'openssh-server'
      - 'opensuse423':
          disabled: false
          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'
    # -------------------------------
    # type
    # -------------------------------
    type:
      - virtual
    # -------------------------------
    # jobs
    # -------------------------------
    jobs:
      - 'openstack-bifrost-verify-{distro}-{type}-{stream}'

# -------------------------------
# VM defaults
# -------------------------------
- defaults:
    name: verify_vm_defaults
    test-vm-num-nodes: '3'
    test-vm-node-names: 'opnfv controller00 compute00'
    vm-domain-type: 'kvm'
    vm-cpu: '2'
    vm-disk: '30'
    vm-memory-size: '4096'
    vm-disk-cache: 'unsafe'

# -------------------------------
# job templates
# -------------------------------
- job-template:
    name: 'openstack-bifrost-verify-{distro}-{type}-{stream}'

    disabled: '{obj:disabled}'

    defaults: verify_vm_defaults

    concurrent: false

    properties:
      - logrotate-default
      - build-blocker:
          use-build-blocker: true
          blocking-jobs:
            - 'xci-verify-{distro}-.*'
            - '.*-bifrost-verify.*-{type}'

          block-level: 'NODE'

    parameters:
      - string:
          name: PROJECT_REPO
          default: 'https://git.openstack.org/openstack/bifrost'
      - 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: EXTRA_DIB_ELEMENTS
          default: '{extra-dib-elements}'
      - string:
          name: DIB_OS_PACKAGES
          default: '{dib-os-packages}'
      - string:
          name: TEST_VM_NUM_NODES
          default: '{test-vm-num-nodes}'
      - string:
          name: TEST_VM_NODE_NAMES
          default: '{test-vm-node-names}'
      - string:
          name: VM_DOMAIN_TYPE
          default: '{vm-domain-type}'
      - string:
          name: VM_CPU
          default: '{vm-cpu}'
      - string:
          name: VM_DISK
          default: '{vm-disk}'
      - string:
          name: VM_MEMORY_SIZE
          default: '{vm-memory-size}'
      - string:
          name: VM_DISK_CACHE
          default: '{vm-disk-cache}'
      - string:
          name: CLEAN_DIB_IMAGES
          default: 'true'
      - label:
          name: SLAVE_LABEL
          default: 'xci-virtual'
      - string:
          name: XCI_LOOP
          default: 'verify'

    scm:
      - git:
          url: '$PROJECT_REPO'
          refspec: '$GERRIT_REFSPEC'
          branches:
            - 'origin/$BRANCH'
          skip-tag: true
          choosing-strategy: 'gerrit'
          timeout: 10
          wipe-workspace: true

    triggers:
      - 'openstack-gerrit-trigger':
          branch: '{branch}'

    builders:
      - bifrost-set-name
      - bifrost-build

    wrappers:
      - fix-workspace-permissions
      - build-timeout:
          timeout: 90

    publishers:
      # yamllint disable rule:line-length
      - email:
          recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com julienjut@gmail.com
      # yamllint enable rule:line-length
      - email-jenkins-admins-on-failure
# -------------------------------
# trigger macros
# -------------------------------
- trigger:
    name: 'openstack-gerrit-trigger'
    triggers:
      - gerrit:
          server-name: 'review.openstack.org'
          escape-quotes: true
          trigger-on:
            - patchset-created-event:
                exclude-drafts: 'false'
                exclude-trivial-rebase: 'false'
                exclude-no-code-change: 'false'
            - comment-added-contains-event:
                comment-contains-value: 'recheck'
          silent-start: true
          custom-url: '* $JOB_NAME $BUILD_URL'
          projects:
            - project-compare-type: 'PLAIN'
              project-pattern: 'openstack/bifrost'
              branches:
                - branch-compare-type: 'ANT'
                  branch-pattern: '**/{branch}'
              disable-strict-forbidden-file-verification: 'true'
              forbidden-file-paths:
                - compare-type: ANT
                  pattern: 'doc/**'
                - compare-type: ANT
                  pattern: 'releasenotes/**'
          readable-message: true

# --------------------------
# builder macros
# --------------------------
- builder:
    name: bifrost-set-name
    builders:
      - description-setter:
          description: "Built on $NODE_NAME"

- builder:
    name: bifrost-build
    builders:
      - shell:
          !include-raw: ./bifrost-verify.sh