---
# ============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-e2e-long-run-test-kind'

    project: 'meridio-e2e-long-run-test-kind'

    jobs:
      - 'meridio-e2e-long-run-test-kind'

- job-template:
    name: 'meridio-e2e-long-run-test-kind'
    project-type: pipeline
    disabled: '{obj:disabled}'

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

    parameters:
      - string:
          name: GITHUB_ORGANIZATION
          default: 'Nordix'
          description: GitHub Organization
      - string:
          name: PROJECT
          default: 'Meridio'
          description: GitHub project
      - string:
          name: GIT_PROJECT
          default: "https://github.com/$GITHUB_ORGANIZATION/$PROJECT.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: MERIDIO_VERSION
          default: 'latest'
          description: Version of Meridio
      - string:
          name: TAPA_VERSION
          default: 'latest'
          description: Version of Meridio TAPA
      - string:
          name: KUBERNETES_VERSION
          default: 'v1.25'
          description: Version of Kubernetes
      - string:
          name: NSM_VERSION
          default: 'v1.6.0'
          description: Version of NSM
      - string:
          name: IP_FAMILY
          default: 'dualstack'
          description: IP Family
      - string:
          name: NUMBER_OF_WORKERS
          default: "2"
          description: Number of Kubernetes Workers
      - string:
          name: ENVIRONMENT_NAME
          default: "kind-operator"
          description: Name of the environment (under test/e2e/environment directory in Meridio)
      - string:
          name: SKIP
          default: ""
          description: e2e tests to skip
      - string:
          name: FOCUS
          default: ""
          description: e2e tests to focus
      - string:
          name: NUMBER_OF_RUNS
          default: "100"
          description: Number of e2e runs
      - string:
          name: INTERVAL
          default: "7200"
          description: Interval between each e2e test run (in seconds). This also defines the timeout of the e2e test runs.
      - bool:
          name: DRY_RUN
          default: false
          description: Dry Run

    dsl: 
      !include-raw-escape: e2e-long-run.Jenkinsfile
