---
# ============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: 'openstack-tox'

    project: 'openstack-tox'

    stream:
      - 'master':
          branch: '{stream}'
          gated-projects: 'infra/stack/openstack|infra/installer/kolla'
      - 'train':
          branch: '{stream}'
          gated-projects: 'infra/stack/openstack|infra/installer/kolla'

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

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

- job-template:
    name: 'openstack-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: 'openstack-verify-ansible-lint-{stream}'
              current-parameters: true
              kill-phase-on: NEVER
              abort-all-job: false
            - name: 'openstack-verify-shellcheck-{stream}'
              current-parameters: true
              kill-phase-on: NEVER
              abort-all-job: false
            - name: 'openstack-verify-yamllint-{stream}'
              current-parameters: true
              kill-phase-on: NEVER
              abort-all-job: false

- job-template:
    name: 'openstack-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:
