---
# ============LICENSE_START=======================================================
#  Copyright (C) 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: 'engine-verify-deploy-test'

    project: 'engine-verify-deploy-test'

    stream:
      - 'master':
          branch: '{stream}'

    environment-type:
      - online:
          disabled: false
          execution-mode: online-deployment
          pdf: 'https://gerrit.nordix.org/gitweb?p=infra/hwconfig.git;a=blob_plain;f=pods/nordix-vpod1-pdf.yml'
          idf: 'https://gerrit.nordix.org/gitweb?p=infra/hwconfig.git;a=blob_plain;f=pods/nordix-vpod1-idf.yml'
          successful: false
          failed: false
          unstable: false
          notbuilt: false
      - offline:
          disabled: false
          execution-mode: offline-deployment
          pdf: 'file:///opt/engine/offline/git/hwconfig/pods/nordix-vpod1-pdf.yml'
          idf: 'file:///opt/engine/offline/git/hwconfig/pods/nordix-vpod1-idf.yml'
          successful: false
          failed: false
          unstable: false
          notbuilt: false

    phase:
      - deploy
      - functest

    type:
      - virtual:
          provisioner-type: 'bifrost'
          slave-type: 'vpod'
          gated-projects: 'infra/engine|infra/provisioner/bifrost'
      - cloud:
          provisioner-type: 'heat'
          slave-type: 'jumphost'
          gated-projects: 'infra/engine|infra/provisioner/heat'

    distro:
      - ubuntu1804

    cloud:
      - city:
          openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-cicd'

    dependency-jobs: 'engine-verify-package-{distro}-{stream}'
    dependency-job-var: 'TRIGGER_engine_verify_package_{distro}_{stream}_BUILD_RESULT'

    jobs:
      - 'engine-verify-{environment-type}-deploy-test-{distro}-{cloud}-{type}-{stream}'
      - 'engine-verify-{environment-type}-{phase}-{distro}-{cloud}-{type}-{stream}'

- job-template:
    name: 'engine-verify-{environment-type}-deploy-test-{distro}-{cloud}-{type}-{stream}'

    project-type: multijob

    disabled: '{obj:disabled}'

    concurrent: true

    parameters:
      - label:
          name: SLAVE_LABEL
          default: 'engine-{slave-type}-{environment-type}-{distro}-fra'
          description: 'Slave label to schedule this job on.'
      - string:
          name: HW_TYPE
          default: '{type}'
          description: 'Hardware type - could be virtual, cloud, or baremetal'
      - string:
          name: EXECUTION_MODE
          default: '{execution-mode}'
          description: 'Execution mode to run in'
      - string:
          name: PDF
          default: '{pdf}'
          description: 'PDF file to use for deployment'
      - string:
          name: IDF
          default: '{idf}'
          description: 'IDF file to use for deployment'
      - string:
          name: HEAT_ENVIRONMENT_FILENAME
          default: 'heat-environment-{cloud}-{distro}.yaml'
          description: 'Name of heat-environment file to use.'
      - string:
          name: HEAT_STACK_NAME
          default: "nordix-cicd-verify-engine-online-{distro}-$GERRIT_CHANGE_NUMBER"
          description: 'Name of the created stack'
      - string:
          name: KEYPAIR_NAME
          default: "keypair-nordix-cicd-verify-engine-online-{distro}-$GERRIT_CHANGE_NUMBER"
          description: 'Name of the created keypair'
      - string:
          name: USE_PREBUILT_DEPLOYMENT_IMAGE
          default: 'true'
          description: 'Use prebuilt deployment image while running as part of CI/CD'
      - string:
          name: TEST_REPO_URL
          default: 'https://gerrit.nordix.org/infra/test.git'
          description: 'URL to clone the test repo from'
      - string:
          name: TEST_FW
          default: 'functest'
          description: 'Test framework to use'
      - string:
          name: TEST_SUITE
          default: 'healthcheck'
          description: 'Test suite to run'
      - string:
          name: YARDSTICK_DISPATCHER
          default: 'file'
          description: 'Dispatcher to use for Yardstick reporting'
      - string:
          name: DELETE_STACK
          default: 'true'
          description: 'Delete the stack upon completion of the build'
      - string:
          name: VERBOSITY
          default: 'true'
          description: 'Verbosity setting for the engine - true or false - default is false'
      - string:
          name: CI_LOOP
          default: "verify"
          description: 'CI loop the job belongs to'
      - project-parameters:
          project: $GERRIT_PROJECT
          branch: '{branch}'
          description: 'The project and branch which the change is proposed for'
      - nordix-gerrit-parameters

    properties:
      - logrotate
      - build-blocker:
          use-build-blocker: true
          blocking-jobs:
            - '.*?-verify-online-deploy-test-.*'
            - '.*?-verify-offline-deploy-test-.*'
          block-level: 'NODE'
      - throttle:
          max-per-node: 1
          max-total: 3
          option: project

    scm:
      - git-scm-gerrit:
          ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
          branch: $GERRIT_BRANCH
          refspec: $GERRIT_REFSPEC
          wipe_workspace: true
          clean_before: false

    triggers:
      - gerrit:
          server-name: 'Nordix Gerrit'
          trigger-on:
            - patchset-created-event:
                exclude-drafts: 'false'
                exclude-trivial-rebase: 'false'
                exclude-no-code-change: 'false'
            - draft-published-event
            - comment-added-contains-event:
                comment-contains-value: 'recheck'
            - comment-added-contains-event:
                comment-contains-value: 'reverify'
          projects:
            - project-compare-type: 'REG_EXP'
              project-pattern: '{gated-projects}'
              branches:
                - branch-compare-type: 'ANT'
                  branch-pattern: '**/{branch}'
              disable-strict-forbidden-file-verification: 'true'
              forbidden-file-paths:
                - compare-type: ANT
                  pattern: 'docs/**|releasenotes/**'
          skip-vote:
            successful: '{obj:successful}'
            failed: '{obj:failed}'
            unstable: '{obj:unstable}'
            notbuilt: '{obj:notbuilt}'
          custom-url: '* $JOB_NAME $BUILD_URL'
          readable-message: 'true'
          dependency-jobs: '{dependency-jobs}'

    wrappers:
      - build-timeout:
          timeout: 180
      - credentials-binding:
          - file:
              credential-id: '{openrc-credentials-file}'
              variable: OPENRC_FILE
          - username-password-separated:
              credential-id: 'nordix-cicd-arm-credentials'
              username: NORDIX_ARM_USERNAME
              password: NORDIX_ARM_TOKEN
      - mask-passwords
      - openstack:
          single-use: True
      - pre-scm-buildstep:
          failOnError: true
          buildsteps:
            - system-groovy:
                command: |
                  def build = this.getProperty('binding').getVariable('build')
                  def listener = this.getProperty('binding').getVariable('listener')
                  if (build.getEnvironment(listener).{dependency-job-var} != "SUCCESS") {{
                    println "WARN  : Aborting build since dependent job did not succeed!"
                    throw new InterruptedException()
                  }}
            - shell: |
                #!/bin/bash
                sudo chown -R $USER:$USER $WORKSPACE || exit 1
                # offline nodes can not resolve Nordix Artifactory and Gerrit
                if [[ "$EXECUTION_MODE" == "offline-deployment" ]]; then
                  echo "Info  : Offline deployment. Adding City OpenStack Endpoint, Nordix Artifactory and Gerrit Public IP to /etc/hosts"
                  sudo sed -i 's/^search/# search/' /etc/resolv.conf
                  sudo bash -c "cat << EOF >> /etc/hosts
                # managed by engine
                91.106.198.25 artifactory.nordix.org
                91.106.198.142 gerrit.nordix.org
                86.107.242.50 fra1.citycloud.com
                # managed by engine
                EOF"
                  # we need to get rid of search domain as well
                  sudo sed -i 's/^search/# search/' /etc/resolv.conf
                fi

    builders:
      - 'generate-change-metadata-macro'
      - multijob:
          name: "{environment-type} deployment on {type} instances"
          condition: SUCCESSFUL
          execution-type: PARALLEL
          projects:
            - name: 'engine-verify-{environment-type}-deploy-{distro}-city-{type}-master'
              current-parameters: true
              git-revision: true
              node-parameters: true
              kill-phase-on: FAILURE
              abort-all-job: false
              property-file: $WORKSPACE/change.properties
      - multijob:
          name: "{environment-type} testing on {type} instances"
          condition: SUCCESSFUL
          execution-type: PARALLEL
          projects:
            - name: 'engine-verify-{environment-type}-functest-{distro}-city-{type}-master'
              current-parameters: true
              git-revision: false
              node-parameters: true
              kill-phase-on: FAILURE
              abort-all-job: false
              property-file: $WORKSPACE/change.properties

    publishers:
      - postbuildscript:
          builders:
            - role: SLAVE
              build-on:
                - SUCCESS
                - FAILURE
                - ABORTED
                - NOT_BUILT
                - UNSTABLE
              build-steps:
                - 'wait-pkg-mgr-macro'
                - 'delete-stack-macro'

- job-template:
    name: 'engine-verify-{environment-type}-{phase}-{distro}-{cloud}-{type}-{stream}'

    disabled: '{obj:disabled}'

    concurrent: true

    properties:
      - logrotate
      - throttle:
          max-per-node: 1
          max-total: 3
          option: project

    scm:
      - git-scm-gerrit:
          ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
          branch: $GERRIT_BRANCH
          refspec: $GERRIT_REFSPEC
          wipe_workspace: true
          clean_before: false

    wrappers:
      - build-timeout:
          timeout: 180
      - credentials-binding:
          - file:
              credential-id: '{openrc-credentials-file}'
              variable: OPENRC_FILE
          - username-password-separated:
              credential-id: 'nordix-cicd-arm-credentials'
              username: NORDIX_ARM_USERNAME
              password: NORDIX_ARM_TOKEN
      - mask-passwords
      - fix-workspace-permissions

    builders:
      - 'generate-ssh-keypair-macro'
      - 'wait-pkg-mgr-macro'
      - 'download-artifact-macro'
      - '{phase}-macro'
