engine: Set deploy scenario and create k8s 1.16 jobs
[infra/cicd.git] / jjb / engine / verify-jobs / engine-verify-package.yaml
index 4a44bd03117aeaf2334f2f09cdab64acf37a3552..c294376673b97933e9e258071700e8e8522cae41 100644 (file)
     stream:
       - 'master':
           branch: '{stream}'
-          openrc-credentials-file: 'est-jenkins-openrcfile-city-karlskrona-onap'
+          openrc-credentials-file: 'est-jenkins-openrcfile-city-frankfurt-cicd'
           execution-mode: 'packaging'
-          gated-projects: 'infra\/engine'
+          gated-projects: 'infra/engine|infra/provisioner/bifrost|infra/provisioner/heat'
           successful: false
           failed: false
           unstable: false
           notbuilt: false
+          deploy-scenario: 'k8-calico-nofeature'
 
     distro:
       - ubuntu1804
 
+    dependency-jobs: 'engine-verify-tox-{stream}'
+    dependency-job-var: 'TRIGGER_engine_verify_tox_{stream}_BUILD_RESULT'
+
     jobs:
       - 'engine-verify-package-{distro}-{stream}'
 
     concurrent: true
 
     parameters:
+      - string:
+          name: DEPLOY_SCENARIO
+          default: '{deploy-scenario}'
+          description: 'Scenario to test change with.'
       - string:
           name: EXECUTION_MODE
           default: '{execution-mode}'
           name: VERBOSITY
           default: 'true'
           description: 'Verbosity setting for the engine - true or false - default is false'
-      - string:
-          name: ARTIFACTS_TO_UPLOAD
-          default: "k8s-installer-ubuntu1804.bsx"
-          description: 'Artifacts to upload'
-      - string:
-          name: NORDIX_ARM_PUBLIC_IP
-          default: '91.106.198.25'
-          description: 'Public IP of Nordix Artifactory. Offline deployments can not resolve domain name'
-      - string:
-          name: NORDIX_ARM_HTTPS_URL
-          default: 'https://artifactory.nordix.org/artifactory'
-          description: 'URL to Nordix Artifactory'
-      - string:
-          name: NORDIX_ARM_REPO
-          default: 'nordix-kubernetes'
-          description: 'Name of the repository to upload and download artifact to/from. Depends on the stack'
       - string:
           name: CI_LOOP
           default: 'verify'
           description: 'CI loop type'
       - label:
           name: SLAVE_LABEL
-          default: 'engine-master-offline-{distro}'
+          default: 'engine-package-{distro}-fra'
           description: 'Slave label to schedule this job on.'
       - project-parameters:
           project: $GERRIT_PROJECT
 
     properties:
       - logrotate
+      # NOTE (fdegir): throttle categories are controlled in jenkins global configuration
       - throttle:
+          enabled: true
           max-per-node: 1
-          max-total: 3
-          option: project
-
-    wrappers:
-      - build-timeout:
-          timeout: 180
-      - mask-passwords
-      - fix-workspace-permissions
-      - openstack:
-          single-use: True
+          max-total: 4
+          option: category
+          categories:
+            - engine-verify-package
 
     scm:
       - git-scm-gerrit:
           ssh-credentials-id: nordixinfra-nordix-gerrit-ssh
-          branch: '{branch}'
+          branch: $GERRIT_BRANCH
           refspec: $GERRIT_REFSPEC
           wipe_workspace: true
           clean_before: false
             notbuilt: '{obj:notbuilt}'
           custom-url: '* $JOB_NAME $BUILD_URL'
           readable-message: 'true'
-          dependency-jobs: 'engine-verify-tox-{stream}'
+          dependency-jobs: '{dependency-jobs}'
 
     wrappers:
+      - openstack:
+          single-use: True
       - build-timeout:
-          timeout: 70
+          timeout: 240
       - credentials-binding:
           - username-password-separated:
               credential-id: 'nordix-cicd-arm-credentials'
               username: NORDIX_ARM_USERNAME
               password: NORDIX_ARM_TOKEN
       - mask-passwords
-      - fix-workspace-permissions
+      - 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
+
 
     builders:
+      - 'generate-change-metadata-macro'
+      - inject:
+          properties-file: "$WORKSPACE/change.properties"
       - 'generate-ssh-keypair-macro'
       - 'wait-pkg-mgr-macro'
       - 'package-macro'