---
###################################################
# All the jobs except verify have been removed!
# They will only be enabled on request by projects!
###################################################
- project:
    name: yardstick-project-jobs

    project: 'yardstick'

    jobs:
      - 'yardstick-verify-{stream}'
      - 'yardstick-merge-{stream}'

    stream:
      - master:
          branch: '{stream}'
          gs-pathname: ''
          disabled: false
      - euphrates:
          branch: 'stable/{stream}'
          gs-pathname: '/{stream}'
          disabled: false

################################
# job templates
################################

- job-template:
    name: 'yardstick-verify-{stream}'

    disabled: '{obj:disabled}'

    parameters:
      - project-parameter:
          project: '{project}'
          branch: '{branch}'
      - 'opnfv-build-ubuntu-defaults'

    scm:
      - git-scm-gerrit

    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'
          projects:
            - project-compare-type: 'ANT'
              project-pattern: '{project}'
              branches:
                - branch-compare-type: 'ANT'
                  branch-pattern: '**/{branch}'

    wrappers:
      - ssh-agent-wrapper
      - timeout:
          timeout: 30
          fail: true

    builders:
      - yardstick-unit-tests-python-27
      - yardstick-unit-tests-python-3
      - yardstick-functional-tests-python-27
      - yardstick-functional-tests-python-3
      - yardstick-coverage-tests
      - yardstick-pep8-tests

- job-template:
    name: 'yardstick-merge-{stream}'

    disabled: '{obj:disabled}'

    parameters:
      - project-parameter:
          project: '{project}'
          branch: '{branch}'
      - 'opnfv-build-ubuntu-defaults'
      - string:
          name: GS_URL
          default: '$GS_BASE{gs-pathname}'
          description: "Directory where the build artifact will be located upon the completion     of the build."

    scm:
      - git-scm

    triggers:
      - gerrit:
          server-name: 'gerrit.opnfv.org'
          trigger-on:
            - change-merged-event
            - comment-added-contains-event:
                comment-contains-value: 'remerge'
          projects:
            - project-compare-type: 'ANT'
              project-pattern: '{project}'
              branches:
                - branch-compare-type: 'ANT'
                  branch-pattern: '**/{branch}'

    wrappers:
      - ssh-agent-wrapper
      - timeout:
          timeout: 30
          fail: true

    builders:
      - yardstick-unit-tests-python-27
      - yardstick-unit-tests-python-3
      - yardstick-functional-tests-python-27
      - yardstick-functional-tests-python-3
      - yardstick-coverage-tests
      - yardstick-pep8-tests

################################
# job builders
################################

- builder:
    name: yardstick-unit-tests-python-27
    builders:
      - shell: |
          #!/bin/bash
          set -o errexit
          set -o pipefail

          sudo apt-get -y autoremove
          sudo apt-get install -y build-essential python-dev python3-dev
          sudo apt-get -y clean && sudo apt-get -y autoremove

          echo "Running unit tests in Python 2.7 ..."
          cd $WORKSPACE
          tox -epy27

- builder:
    name: yardstick-unit-tests-python-3
    builders:
      - shell: |
          #!/bin/bash
          set -o errexit
          set -o pipefail

          sudo apt-get -y autoremove
          sudo apt-get install -y build-essential python-dev python3-dev
          sudo apt-get -y clean && sudo apt-get -y autoremove

          echo "Running unit tests in Python 3 ..."
          cd $WORKSPACE
          tox -epy3

- builder:
    name: yardstick-functional-tests-python-27
    builders:
      - shell: |
          #!/bin/bash
          set -o errexit
          set -o pipefail

          sudo apt-get -y autoremove
          sudo apt-get install -y build-essential python-dev python3-dev
          sudo apt-get -y clean && sudo apt-get -y autoremove

          echo "Running functional tests in Python 2.7 ..."
          cd $WORKSPACE
          tox -efunctional

- builder:
    name: yardstick-functional-tests-python-3
    builders:
      - shell: |
          #!/bin/bash
          set -o errexit
          set -o pipefail

          sudo apt-get -y autoremove
          sudo apt-get install -y build-essential python-dev python3-dev
          sudo apt-get -y clean && sudo apt-get -y autoremove

          echo "Running functional tests in Python 3 ..."
          cd $WORKSPACE
          tox -efunctional-py3

- builder:
    name: yardstick-coverage-tests
    builders:
      - shell: |
          #!/bin/bash
          set -o errexit
          set -o pipefail

          sudo apt-get -y autoremove
          sudo apt-get install -y build-essential python-dev python3-dev
          sudo apt-get -y clean && sudo apt-get -y autoremove

          echo "Running coverage tests ..."
          cd $WORKSPACE
          tox -ecoverage

- builder:
    name: yardstick-pep8-tests
    builders:
      - shell: |
          #!/bin/bash
          set -o errexit
          set -o pipefail

          sudo apt-get -y autoremove
          sudo apt-get install -y build-essential python-dev python3-dev
          sudo apt-get -y clean && sudo apt-get -y autoremove

          echo "Running style guidelines (PEP8) tests ..."
          cd $WORKSPACE
          tox -epep8