---
#
# ============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=========================================================
- project:
    name: 'apache-geode-native-verify'
    project: 'Nordix/geode-native'

    stream:
      - 'release-nordix-1.10.0':
          branch: 'release-nordix/1.10.0'
    jobs:
      - 'apache-geode-native-{stream}-verify'

- job-template:
    name: 'apache-geode-native-{stream}-verify'
    project-type: multijob
    disabled: false
    concurrent: true
    node: geode-ubuntu1804

    parameters:
      - string:
          name: PROJECT
          default: '{project}'
          description: JJB configured PROJECT parameter to identify a Nordix GitHub project
      - string:
          name: BRANCH
          default: '{branch}'
          description: JJB configured BRANCH parameter for Nordix GitHub project
      - bool:
          name: PUBLISH_GEODE
          default: true
          description: Publish Geode software to Nordix Artifactory after all tests are passed
      - string:
          name: JOBS
          default: '24'
          description: JJB configured JOBS parameter. Specifies the number of make jobs to run simultaneously while building geode-native
      - string:
          name: GEODE_NATIVE_DOCKER_IMAGE
          default: 'apachegeode/geode-native-build'
          description: JJB configured name of the geode-native build docker image based on Ubuntu 18.04

    properties:
      - logrotate
      - github:
          url: 'https://github.com/Nordix/geode-native.git/'
      - throttle:
          max-per-node: 1
          max-total: 3
          option: project

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

    triggers:
      - github

    builders:
      - 'verify-geode-tag-macro'
      - multijob:
          name: SlaveSetup
          condition: SUCCESSFUL
          execution-type: SEQUENTIALLY
          projects:
            - name: 'apache-geode-native-SlaveSetup'
              current-parameters: true
              git-revision: false
              abort-all-job: true
              node-parameters: true
      - multijob:
          name: Verification
          condition: SUCCESSFUL
          execution-type: PARALLEL
          projects:
            - name: 'apache-geode-native-RatCheck'
              current-parameters: true
              git-revision: true
              abort-all-job: true
              node-parameters: true
            - name: 'apache-geode-native-UnitTest'
              current-parameters: true
              git-revision: true
              abort-all-job: true
              node-parameters: true
            - name: 'apache-geode-native-IntegrationTest'
              current-parameters: true
              git-revision: true
              abort-all-job: true
              node-parameters: true
            - name: 'apache-geode-native-NewIntegrationTest'
              current-parameters: true
              git-revision: true
              abort-all-job: true
              node-parameters: true
      - multijob:
          name: Release
          condition: SUCCESSFUL
          execution-type: SEQUENTIALLY
          projects:
            - name: 'apache-geode-native-SrcRelease'
              current-parameters: true
              git-revision: true
              abort-all-job: true
              node-parameters: true
              enable-condition: "$PUBLISH_GEODE == true"

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