---
#
# ============LICENSE_START=======================================================
#  Copyright (C) 2018-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=========================================================
- job-template:
    name: 'apache-geode-{test-type}Test-jdk{java-test-version}'

    node: geode-ubuntu1804
    disabled: false
    concurrent: true

    properties:
      - logrotate
      - github:
          url: 'https://github.com/Nordix/geode.git/'

    parameters:
      - string:
          name: PROJECT
          default: 'Nordix/geode'
          description: JJB configured PROJECT parameter to identify a Nordix GitHub project
      - string:
          name: BRANCH
          default: 'release-nordix/1.9.0'
          description: JJB configured BRANCH parameter for Nordix GitHub project
      - string:
          name: ARTIFACT_SLUG
          default: '{artifact-slug}'
          description: 'The geode artifact required'
      - string:
          name: GRADLE_TASK
          default: '{gradle-task}'
          description: 'Single atomic piece of work for a build, such as compiling classes or generating javadoc'
      - string:
          name: PARALLEL_GRADLE
          default: '{parallel-gradle}'
          description: 'Parallel execution of gradle tasks'
      - string:
          name: PARALLEL_DUNIT
          default: '{parallel-dunit}'
          description: 'Parallel test execution using docker images'
      - string:
          name: DUNIT_PARALLEL_FORKS
          default: '{dunit-parallel-forks}'
          description: 'Control how many concurrent dunit (using docker) tests will be run'
      - string:
          name: JAVA_BUILD_VERSION
          default: '{java-build-version}'
          description: 'Java version use to build geode'
      - string:
          name: JAVA_TEST_VERSION
          default: '{java-test-version}'
          description: 'Java version use during test execution'

    scm:
      - git-scm-github:
          branch: '$BRANCH'
          refspec: ''
          wipe_workspace: true
          clean_before: false
          base_dir: 'geode'

    builders:
      - '{build-executor}'

    publishers:
      - workspace-cleanup:
          clean-if:
            - failure: false
      - html-publisher:
          name: "{test-type} HTML Report"
          dir: "geode/build/reports/combined"
          files: "index.html"
          keep-all: false
          allow-missing: true
          link-to-last-build: false
      - notify-slack:
          slack-channel: '#geode-ci'
          notify-start: true
          notify-success: true
          notify-failure: true
          notify-back-to-normal: true
