---
#
# ============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=========================================================

# Description:
# ============
# This file contains job template definition for K8s CAPI Baremetal integration tests.
# This job can be triggered manually or through a Github pull request. It creates a
# pipeline job. The pipeline scripts are maintained in Airship CI repository.

- job-template:
    id: linter_tests
    name: '{job_prefix}_{name}_linter_test'
    description: "Code linting tests for {repo[org]}/{repo[name]}. "
    project-type: pipeline
    defaults: global
    disabled: False
    concurrent: True
    parameters:
    - string:
        name: PROJECT_REPO_ORG
        default: '{repo[org]}'
        description: 'Project github repo org name'
    - string:
        name: PROJECT_REPO_NAME
        default: '{repo[name]}'
        description: 'Project github repo name'
    - string:
        name: ghprbActualCommit
        default: 'master'
        description: 'CI Repo branch for triggering manual build'

    properties:
    - build-discarder:
        days-to-keep: 30
        num-to-keep: 300
        artifact-days-to-keep: -1
        artifact-num-to-keep: -1
    - github:
        url: https://github.com/{repo[org]}/{repo[name]}

    triggers:
    - github-pull-request:
        admin-list:
          - '{ci_github_admin_user}'
        org-list: "{ci_github_whitelist_org}"
        cron: 'H/5 * * * *'
        auth-id: "{ci_github_jenkins_credentials_id}"
        trigger-phrase: '/lint'
        skip-build-phrase: '/skip-test'
        only-trigger-phrase: True
        github-hooks: False
        permit-all: False
        auto-close-on-fail: False
        allow-whitelist-orgs-as-admins: True
        white-list-target-branches:
          - master
        status-context: "linter-tests"
        success-status: "Passed"
        failure-status: "Failed"
        error-status: "Error"
        cancel-builds-on-update: True
    pipeline-scm:
      scm:
      - git:
          url: https://github.com/{ci_github_repo}.git
          credentials-id: "{ci_github_jenkins_credentials_id}"
          branches:
            - '{branch|master}'
          name: 'origin'
          refspec: '+refs/heads/*:refs/remotes/origin/*'
          wipe-workspace: True
          honor-refspec: True
          shallow-clone: False
      script-path: 'ci/jobs/{id}.pipeline'
      lightweight-checkout: False
