---
# ============LICENSE_START=======================================================
#  Copyright (C) 2021 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: 'meridio-pull-request'

    project: 'meridio-pull-request'

    # NOTE (fdegir): auth-id is taken from Jenkins Global Configuration
    # by clicking Auth ID button for the desired GitHub Server API URL
    # Please ensure you are looking at GitHub Pull Request Builder part
    # of global configuration and not to GitHub Server configuration
    ghprb-auth-id: 'cdfd2452-a9e2-41a3-8ee6-9058512b4aff'
    ghprb-pull-id: ${{ghprbPullId}}

    jobs:
      - 'meridio-pull-request'

- job-template:
    name: 'meridio-pull-request'
    project-type: pipeline
    disabled: '{obj:disabled}'

    concurrent: true

    properties:
      - github:
          url: https://github.com/Nordix/Meridio

    parameters:
      - string:
          name: GITHUB_ORGANIZATION
          default: 'Nordix'
          description: JJB configured parameter to identify GitHub Organization
      - string:
          name: PROJECT
          default: 'Meridio'
          description: JJB configured PROJECT parameter to identify a Nordix GitHub project
      - string:
          name: IMAGE_NAMES
          default: 'stateless-lb proxy tapa ipam nsp example-target frontend operator'
          description: Images to compile
      - string:
          name: IMAGE_VERSION
          default: 'latest'
          description: Version of the images
      - bool:
          name: E2E_ENABLED
          default: false
          description: Run the e2e tests?
      - bool:
          name: HELM_CHART_UPLOAD
          default: false
          description: Upload Helm Charts?
      - bool:
          name: SECURITY_SCAN_ENABLED
          default: false
          description: Run the security scan?
      - string:
          name: GIT_PROJECT
          default: "https://github.com/Nordix/Meridio.git"
          description: Git URL of the project
      - string:
          name: CURRENT_BRANCH
          default: "pr/{ghprb-pull-id}"
          description: Current Git branch
      - string:
          name: DEFAULT_BRANCH
          default: "master"
          description: default branch
      - string:
          name: BUILD_STEPS
          default: "build"
          description: Steps to run during build
      - string:
          name: IMAGE_REGISTRY
          default: 'registry.nordix.org/cloud-native/meridio'
          description: Meridio image regsitry
      - bool:
          name: DRY_RUN
          default: false
          description: Dry Run

    # https://opendev.org/jjb/jenkins-job-builder/src/commit/be422af6bb5edc32886a98d78340051f71244c41/jenkins_jobs/modules/triggers.py#L1235
    triggers:
      - github-pull-request:
          admin-list:
            - LionelJouin
            - uablrek
            - zolug
          auth-id: '{ghprb-auth-id}'
          github-hooks: true
          permit-all: true
          no-commit-status: true
          trigger-phrase: '/reverify'
          only-trigger-phrase: false
          cron: 'H/5 * * * *'

    dsl: 
      !include-raw-escape: Jenkinsfile
