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

    project: 'meridio-periodic'

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

    jobs:
      - 'meridio-periodic'

- job-template:
    name: 'meridio-periodic'
    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: true
          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: "master"
          description: Current Git branch
      - string:
          name: DEFAULT_BRANCH
          default: "master"
          description: default branch
      - string:
          name: BUILD_STEPS
          default: "build tag push"
          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

    triggers:
      - pollscm:
          cron: '@midnight'

    dsl: 
      !include-raw-escape: Jenkinsfile

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