---
#
# ============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-build-release-jdk{java-build-version}'

    node: geode-ubuntu1804
    disabled: false
    concurrent: true

    properties:
      - logrotate
      - github:
          url: 'https://github.com/Nordix/geode.git/'
    wrappers:
      - credentials-binding:
          - username-password-separated:
              credential-id: infra-nordix-artifactory-api-key
              username: ARTIFACTORY_USER
              password: ARTIFACTORY_API_KEY

    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'

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

    builders:
      - '{build-executor}'

    publishers:
      - notify-slack:
          slack-channel: '#geode'
          notify-start: true
          notify-success: true
          notify-failure: true
          notify-back-to-normal: true