---
# ============LICENSE_START=======================================================
#  Copyright (C) 2019 Nordix Foundation.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================

- project:
    name: 'onap-tox'

    project: 'onap-tox'

    stream:
      - 'master':
          branch: '{stream}'
          gated-projects: 'infra/stack/onap|infra/installer/oom'
      - 'frankfurt':
          branch: '{stream}'
          gated-projects: 'infra/stack/onap|infra/installer/oom'
      - 'elalto':
          branch: '{stream}'
          gated-projects: 'infra/stack/onap|infra/installer/oom'

    lint-type:
      - ansible-lint:
          disabled: false
          repos-to-ignore: ''
      - shellcheck:
          disabled: false
          repos-to-ignore: ''
      - yamllint:
          disabled: false
          repos-to-ignore: ''

    jobs:
      - 'onap-verify-tox-{stream}'
      - 'onap-verify-{lint-type}-{stream}'

- job-template:
    name: 'onap-verify-tox-{stream}'

    project-type: multijob

    concurrent: true

    node: infra-tools-docker-slave-ubuntu1804

    parameters:
      - project-parameters:
          project: $GERRIT_PROJECT
          branch: '{branch}'
          description: 'The project and branch which the change is proposed for'
      - string:
          name: VERBOSITY
          default: 'false'
          description: 'Verbosity setting for the tox script'
      - nordix-gerrit-parameters

    properties:
      - logrotate
      # NOTE (fdegir): throttle categories are controlled in jenkins global configuration
      - throttle:
          enabled: true
          max-per-node: 1
          max-total: 4
          option: category
          categories:
            - engine-verify-tox

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

    scm:
      - git-scm-gerrit:
          ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
          branch: $GERRIT_BRANCH
          refspec: $GERRIT_REFSPEC
          wipe_workspace: true
          clean_before: false

    triggers:
      - gerrit:
          server-name: 'Nordix Gerrit'
          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: 'REG_EXP'
              project-pattern: '{gated-projects}'
              branches:
                - branch-compare-type: 'ANT'
                  branch-pattern: '**/{branch}'
              disable-strict-forbidden-file-verification: 'false'
              forbidden-file-paths:
                - compare-type: ANT
                  pattern: '.gitignore|.gitreview|.yamllint|README.md|bindep.txt|setup.cfg|setup.py'
          custom-url: '* $JOB_NAME $BUILD_URL'
          readable-message: 'true'

    builders:
      - multijob:
          name: Static Analysis
          condition: ALWAYS
          execution-type: PARALLEL
          projects:
            - name: 'onap-verify-ansible-lint-{stream}'
              current-parameters: true
              kill-phase-on: NEVER
              abort-all-job: false
            - name: 'onap-verify-shellcheck-{stream}'
              current-parameters: true
              kill-phase-on: NEVER
              abort-all-job: false
            - name: 'onap-verify-yamllint-{stream}'
              current-parameters: true
              kill-phase-on: NEVER
              abort-all-job: false

- job-template:
    name: 'onap-verify-{lint-type}-{stream}'

    disabled: '{obj:disabled}'

    concurrent: true

    node: infra-tools-docker-slave-ubuntu1804

    parameters:
      - string:
          name: LINT_TYPE
          default: '{lint-type}'
          description: 'Lint type to run'
      - string:
          name: REPOS_TO_IGNORE
          default: '{repos-to-ignore}'
          description: 'Repos to ignore for the specific lint type'

    properties:
      - logrotate

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

    scm:
      - git-scm-gerrit:
          ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
          branch: $GERRIT_BRANCH
          refspec: $GERRIT_REFSPEC
          wipe_workspace: true
          clean_before: false

    builders:
      - 'tox-macro'

# vim: set ts=2 sw=2 expandtab:
