- project:
    name: 'openstack-bifrost-verify'
#--------------------------------
# branches
#--------------------------------
    stream:
        - master:
            branch: '{stream}'
#--------------------------------
# projects
#--------------------------------
    project:
        - 'openstack':
            project-repo: 'https://git.openstack.org/openstack/bifrost'
            clone-location: '/opt/bifrost'
        - 'opnfv':
            project-repo: 'https://gerrit.opnfv.org/gerrit/releng'
            clone-location: '/opt/releng'
#--------------------------------
# distros
#--------------------------------
    distro:
        - 'trusty':
            disabled: false
            dib-os-release: 'trusty'
            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: 'centos7'
            dib-os-packages: 'vim,less,bridge-utils,iputils,rsyslog,curl'
            extra-dib-elements: 'openssh-server'
        - 'suse':
            disabled: false
            dib-os-release: '42.2'
            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:
        - '{project}-bifrost-verify-{distro}-{type}-{stream}'

#--------------------------------
# VM defaults
#--------------------------------
- defaults:
    name: vm_defaults
    vm-disk: '30'
    vm-disk-cache: 'unsafe'
    vm-memory: '4096'
    vm-cpu: '2'

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

    disabled: '{obj:disabled}'

    defaults: vm_defaults

    concurrent: false

    properties:
        - logrotate-default
        - build-blocker:
            use-build-blocker: true
            blocking-jobs:
                - '.*-bifrost-verify.*-{type}'
            block-level: 'NODE'

    parameters:
        - string:
            name: PROJECT
            default: '{project}'
        - string:
            name: PROJECT_REPO
            default: '{project-repo}'
        - string:
            name: CLONE_LOCATION
            default: '{clone-location}'
        - 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: VM_DISK
            default: '{vm-disk}'
        - string:
            name: VM_DISK_CACHE
            default: '{vm-disk-cache}'
        - string:
            name: VM_MEMORY
            default: '{vm-memory}'
        - string:
            name: VM_CPU
            default: '{vm-cpu}'
        - string:
            name: CLEAN_DIB_IMAGES
            default: 'true'
        - label:
            name: SLAVE_LABEL
            default: 'infra-{type}-{distro}'
        - string:
            name: BIFROST_LOG_URL
            default: 'http://artifacts.opnfv.org/cross-community-ci/openstack/bifrost/$GERRIT_NAME/$GERRIT_CHANGE_NUMBER/$GERRIT_PATCHSET_NUMBER/$JOB_NAME'

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

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

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

    publishers:
        - email:
            recipients: fatih.degirmenci@ericsson.com yroblamo@redhat.com mchandras@suse.de jack.morgan@intel.com zhang.jun3g@zte.com.cn
#--------------------------------
# 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'
            custom-url: '* $JOB_NAME $BIFROST_LOG_URL/index.html'
            silent-start: true
            projects:
              - project-compare-type: 'PLAIN'
                project-pattern: 'openstack/bifrost'
                branches:
                  - branch-compare-type: 'ANT'
                    branch-pattern: '**/{branch}'
                forbidden-file-paths:
                  - compare-type: ANT
                    pattern: 'doc/**'
                  - compare-type: ANT
                    pattern: 'releasenotes/**'
            readable-message: true
- trigger:
    name: 'opnfv-gerrit-trigger'
    triggers:
        - gerrit:
            server-name: 'gerrit.opnfv.org'
            trigger-on:
                - patchset-created-event:
                    exclude-drafts: 'false'
                    exclude-trivial-rebase: 'false'
                    exclude-no-code-change: 'false'
                - draft-published-event
                - comment-added-contains-event:
                    comment-contains-value: 'recheck'
                - comment-added-contains-event:
                    comment-contains-value: 'reverify'
            custom-url: '* $JOB_NAME $BIFROST_LOG_URL/index.html'
            projects:
              - project-compare-type: 'ANT'
                project-pattern: 'releng'
                branches:
                  - branch-compare-type: 'ANT'
                    branch-pattern: '**/{branch}'
                file-paths:
                  - compare-type: ANT
                    pattern: 'prototypes/bifrost/**'
            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