engine: Fine tune release jobs 99/4099/2
authorFatih Degirmenci <fdegir@gmail.com>
Thu, 19 Mar 2020 14:55:23 +0000 (14:55 +0000)
committerFatih Degirmenci <fdegir@gmail.com>
Fri, 20 Mar 2020 09:16:58 +0000 (09:16 +0000)
Change-Id: Ide647fe777fc2a23b5565c0ea09edc4a71ccb6fd

jjb/engine/engine-macros.yaml
jjb/engine/periodic-jobs/engine-periodic-offline-deploy-test.yaml [moved from jjb/engine/engine-periodic-jobs/engine-periodic-offline-deploy-test.yaml with 80% similarity]
jjb/engine/periodic-jobs/engine-periodic-release-jobs.yaml [moved from jjb/engine/engine-periodic-jobs/engine-periodic-release-jobs.yaml with 81% similarity]
jjb/engine/scripts/download-artifact.sh
jjb/engine/scripts/generate-job-metadata.sh
jjb/engine/verify-jobs/engine-verify-deployment-parent-jobs.yaml [moved from jjb/engine/engine-verify-jobs/engine-verify-deployment-parent-jobs.yaml with 90% similarity]
jjb/engine/verify-jobs/engine-verify-offline-deploy-test.yaml [moved from jjb/engine/engine-verify-jobs/engine-verify-offline-deploy-test.yaml with 96% similarity]
jjb/engine/verify-jobs/engine-verify-online-deploy-test.yaml [moved from jjb/engine/engine-verify-jobs/engine-verify-online-deploy-test.yaml with 96% similarity]
jjb/engine/verify-jobs/engine-verify-tox.yaml [moved from jjb/engine/engine-verify-jobs/engine-verify-tox.yaml with 99% similarity]

index d9fd1714755ee466611ea9988b4dfc3e625b6a59..bb45b0687896649f25c1e53bdf9cbceba41b856f 100644 (file)
 # the need to using include-raw-escape
 #-------------------------------------------------------------------------------
 - builder:
-    name: 'engine-verify-tox-macro'
+    name: 'tox-macro'
     builders:
       - shell:
           !include-raw: ./scripts/tox.sh
 
 
 - builder:
-    name: 'engine-generate-ssh-keypair-macro'
+    name: 'generate-ssh-keypair-macro'
     builders:
       - shell:
           !include-raw: ./scripts/generate-ssh-keypair.sh
 
 - builder:
-    name: 'engine-packaging-macro'
+    name: 'package-macro'
     builders:
       - shell:
           !include-raw: ./scripts/package.sh
 
 - builder:
-    name: 'engine-upload-artifact-macro'
+    name: 'upload-artifact-macro'
     builders:
       - shell:
           !include-raw: ./scripts/upload-artifact.sh
 
 - builder:
-    name: 'engine-download-artifact-macro'
+    name: 'download-artifact-macro'
     builders:
       - shell:
           !include-raw: ./scripts/download-artifact.sh
 
 - builder:
-    name: 'engine-deploy-macro'
+    name: 'deploy-macro'
     builders:
       - shell:
           !include-raw: ./scripts/deploy.sh
 
 - builder:
-    name: 'engine-test-macro'
+    name: 'test-macro'
     builders:
       - shell:
           !include-raw: ./scripts/test.sh
 
 - builder:
-    name: 'engine-delete-stack-macro'
+    name: 'delete-stack-macro'
     builders:
       - shell:
           !include-raw: ./scripts/delete-heat-stack.sh
 
 - builder:
-    name: 'engine-wait-pkg-mgr-macro'
+    name: 'wait-pkg-mgr-macro'
     builders:
       - shell:
           !include-raw: ./scripts/wait-for-pkg-manager.sh
 - builder:
-    name: 'engine-generate-job-metadata-macro'
+    name: 'generate-job-metadata-macro'
     builders:
       - shell:
           !include-raw: ./scripts/generate-job-metadata.sh
similarity index 80%
rename from jjb/engine/engine-periodic-jobs/engine-periodic-offline-deploy-test.yaml
rename to jjb/engine/periodic-jobs/engine-periodic-offline-deploy-test.yaml
index 43f6e65f7336202d051addd026d1497acf524de2..e3e68c1f88b8faa2292ec37104f6b1660a1dbc20 100644 (file)
@@ -33,6 +33,7 @@
       - k8-calico-nofeature
       - k8-multus-nofeature
 
+
     type:
       - baremetal:
           pod-name: est-baremetal
           slave-label: baremetal-deploy
           yardstick-dispatcher: 'influxdb'
 
+    environment-type:
+      - offline:
+          disabled: false
+          execution-mode: offline-deployment
+          pdf: 'file:///opt/engine/offline/git/hwconfig/pods'
+          idf: 'file:///opt/engine/offline/git/hwconfig/pods'
+
     phase:
       - deploy:
           build-timeout: 90
           build-timeout: 120
 
     jobs:
-      - '{deploy-scenario}-offline-{distro}-{type}-periodic'
-      - 'kubernetes-offline-{phase}-{distro}-{type}-periodic'
+      - '{deploy-scenario}-{environment-type}-{distro}-{type}-periodic'
+      - 'kubernetes-{environment-type}-{phase}-{distro}-{type}-periodic'
 
 - job-template:
-    name: '{deploy-scenario}-offline-{distro}-{type}-periodic'
+    name: '{deploy-scenario}-{environment-type}-{distro}-{type}-periodic'
 
     project-type: multijob
 
           name: DEPLOY_SCENARIO
           default: '{deploy-scenario}'
           description: 'Scenario to deploy and test'
+      - string:
+          name: PDF
+          default: '{pdf}/${{NODE_NAME}}-pdf.yml'
+          description: 'PDF file to use for deployment'
+      - string:
+          name: IDF
+          default: '{idf}/${{NODE_NAME}}-idf.yml'
+          description: 'IDF file to use for deployment'
       - string:
           name: TEST_REPO_URL
           default: 'https://gerrit.nordix.org/infra/test.git'
           condition: SUCCESSFUL
           execution-type: PARALLEL
           projects:
-            - name: 'kubernetes-offline-deploy-{distro}-{type}-periodic'
+            - name: 'kubernetes-{environment-type}-deploy-{distro}-{type}-periodic'
               current-parameters: true
               node-parameters: true
               kill-phase-on: FAILURE
           name: functest
           condition: ALWAYS
           projects:
-            - name: 'kubernetes-offline-functest-{distro}-{type}-periodic'
+            - name: 'kubernetes-{environment-type}-functest-{distro}-{type}-periodic'
               current-parameters: true
               node-parameters: true
               kill-phase-on: FAILURE
           name: yardstick
           condition: ALWAYS
           projects:
-            - name: 'kubernetes-offline-yardstick-{distro}-{type}-periodic'
+            - name: 'kubernetes-{environment-type}-yardstick-{distro}-{type}-periodic'
               current-parameters: true
               node-parameters: true
               kill-phase-on: FAILURE
               abort-all-job: true
 
 - job-template:
-    name: 'kubernetes-offline-{phase}-{distro}-{type}-periodic'
+    name: 'kubernetes-{environment-type}-{phase}-{distro}-{type}-periodic'
 
     disabled: '{obj:disabled}'
 
similarity index 81%
rename from jjb/engine/engine-periodic-jobs/engine-periodic-release-jobs.yaml
rename to jjb/engine/periodic-jobs/engine-periodic-release-jobs.yaml
index eb5d875e41b9caa6da4edf98158c13986f5a1fbf..65eaa57c2d8db1d0707a6ebefa15cfb82a8ac2e0 100644 (file)
@@ -26,8 +26,6 @@
       - offline:
           disabled: false
           execution-mode: offline-deployment
-          pdf: 'file:///opt/engine/offline/git/hwconfig/pods'
-          idf: 'file:///opt/engine/offline/git/hwconfig/pods'
 
     distro:
       - ubuntu1804
           name: DEPLOY_SCENARIO
           default: 'k8-calico-nofeature'
           description: 'Scenario to deploy and test'
-      - string:
-          name: PDF
-          default: '{pdf}/${{NODE_NAME}}-pdf.yml'
-          description: 'PDF file to use for deployment'
-      - string:
-          name: IDF
-          default: '{idf}/${{NODE_NAME}}-idf.yml'
-          description: 'IDF file to use for deployment'
       - string:
           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 offline-package.tgz"
+          description: 'Artifacts to upload'
+      - string:
+          name: ARTIFACT_TO_DOWNLOAD
+          default: "k8s-installer-ubuntu1804.bsx"
+          description: 'Artifact to download'
       - string:
           name: NORDIX_ARM_PUBLIC_IP
           default: '91.106.198.25'
@@ -95,9 +93,9 @@
           default: 'nordix-kubernetes'
           description: 'Name of the repository to upload and download artifact to/from. Depends on the stack'
       - string:
-          name: NORDIX_ARTIFACT_URL
-          default: "$NORDIX_ARM_HTTPS_URL/$NORDIX_ARM_REPO/installer/oss/change/$GERRIT_CHANGE_NUMBER/k8s-installer-ubuntu1804.bsx"
-          description: 'Name of the repository to upload and download artifact to/from. Depends on the stack'
+          name: CI_LOOP
+          default: 'periodic'
+          description: 'CI loop type'
       - label:
           name: SLAVE_LABEL
           default: 'engine-build-ubuntu1804'
           wipe-workspace: true
 
     builders:
-      - 'engine-wait-pkg-mgr-macro'
-      - 'engine-generate-ssh-keypair-macro'
-      - 'engine-generate-job-metadata-macro'
+      - 'wait-pkg-mgr-macro'
+      - 'generate-ssh-keypair-macro'
+      - 'generate-job-metadata-macro'
       - multijob:
-          name: packaging
+          name: package
           condition: SUCCESSFUL
           execution-type: PARALLEL
           projects:
               current-parameters: true
               git-revision: true
               node-parameters: true
-              property-file: "$WORKSPACE/job.properties"
+              property-file: "$WORKSPACE/build.properties"
               kill-phase-on: FAILURE
               abort-all-job: true
       - multijob:
               current-parameters: false
               git-revision: false
               node-parameters: false
-              property-file: "$WORKSPACE/job.properties"
+              property-file: "$WORKSPACE/build.properties"
+              predefined-parameters: |
+                NORDIX_ARM_PUBLIC_IP=$NORDIX_ARM_PUBLIC_IP
+                ARTIFACT_TO_DOWNLOAD=$ARTIFACT_TO_DOWNLOAD
+                VERBOSITY=$VERBOSITY
               kill-phase-on: FAILURE
               abort-all-job: true
       - multijob:
               current-parameters: false
               git-revision: false
               node-parameters: false
-              property-file: "$WORKSPACE/job.properties"
+              property-file: "$WORKSPACE/build.properties"
+              predefined-parameters: |
+                NORDIX_ARM_PUBLIC_IP=$NORDIX_ARM_PUBLIC_IP
+                ARTIFACT_TO_DOWNLOAD=$ARTIFACT_TO_DOWNLOAD
+                VERBOSITY=$VERBOSITY
               kill-phase-on: FAILURE
               abort-all-job: true
       - multijob:
           condition: SUCCESSFUL
           execution-type: PARALLEL
           projects:
-            - name: 'kubernetes-periodic-promote-package-{distro}'
+            - name: 'kubernetes-periodic-promote-{distro}'
               current-parameters: true
               git-revision: true
               node-parameters: true
-              property-file: "$WORKSPACE/job.properties"
+              property-file: "$WORKSPACE/build.properties"
               kill-phase-on: FAILURE
               abort-all-job: true
 
           #!/bin/bash
           env
 
-#      - 'engine-wait-pkg-mgr-macro'
-#      - 'engine-generate-ssh-keypair-macro'
-#      - 'engine-packaging-macro'
-#      - 'engine-upload-artifact-macro'
+#      - 'wait-pkg-mgr-macro'
+#      - 'generate-ssh-keypair-macro'
+#      - 'package-macro'
+#      - 'upload-artifact-macro'
index d67405a93f5708d42e6792569512952fe690d638..2cd405efcc1f0e6edbf23c3e96122d201d2cf5e2 100755 (executable)
@@ -33,8 +33,8 @@ EOF"
   cd /tmp
   curl -s -O $NORDIX_ARTIFACT_URL
   echo "Info  : Downloaded the artifact for offline deployment. Extracting."
-  chmod +x /tmp/k8s-installer-ubuntu1804.bsx
-  /tmp/k8s-installer-ubuntu1804.bsx
+  chmod +x $ARTIFACT_TO_DOWNLOAD
+  $ARTIFACT_TO_DOWNLOAD
 else
   echo "Info  : Online deployment. Skipping artifact download."
 fi
index eaa0aca75bff267d813b35177e37be36fe5754d3..df160e3de3ca14e8dc4f004c4f0b3d4751aae268 100755 (executable)
@@ -23,15 +23,27 @@ set -o errexit
 set -o pipefail
 
 cd $WORKSPACE
-echo "Info  : Generating job metadata"
-cat << EOF > "$WORKSPACE/job.properties"
-BUILD_IDENTIFIER="$(date '+%Y%m%d%H%M')"
-PROMOTED_BY="$BUILD_URL"
-NORDIX_ARTIFACT_URL="$NORDIX_ARM_HTTPS_URL/$NORDIX_ARM_REPO/installer/oss/release/$BUILD_IDENTIFIER"
-ENGINE_SHA="$(git rev-parse HEAD)"
+# need to generate the identifier before writing it
+if [[ "$CI_LOOP" == "verify" ]]; then
+  BUILD_IDENTIFIER=$GERRIT_CHANGE_NUMBER
+elif [[ "$CI_LOOP" == "periodic" ]]; then
+  BUILD_IDENTIFIER="$(date '+%Y%m%d%H%M')"
+else
+  echo "Error : Unrecognized CI Loop $CI_LOOP"
+  exit 1
+fi
+
+echo "Info  : Generating build metadata"
+cat << EOF > "$WORKSPACE/build.properties"
+BUILD_DATE=$(date '+%Y%m%d%H%M')
+BUILT_BY=$BUILD_URL
+BUILD_IDENTIFIER=$BUILD_IDENTIFIER
+CI_LOOP=$CI_LOOP
+ENGINE_SHA=$(git rev-parse HEAD)
+NORDIX_ARTIFACT_URL=$NORDIX_ARM_HTTPS_URL/$NORDIX_ARM_REPO/installer/oss/release/$BUILD_IDENTIFIER
 EOF
 
-echo "Info  : Job metadata"
+echo "Info  : Build metadata"
 echo "-------------------------------------------------------------------------"
-cat "$WORKSPACE/job.properties"
+cat "$WORKSPACE/build.properties"
 echo "-------------------------------------------------------------------------"
similarity index 90%
rename from jjb/engine/engine-verify-jobs/engine-verify-deployment-parent-jobs.yaml
rename to jjb/engine/verify-jobs/engine-verify-deployment-parent-jobs.yaml
index ab95a5b05cfc7d69fd49e29f1c90561ea42b5f21..169435277c71f9036e1491c80eda9ffde5d9a9ed 100644 (file)
@@ -52,7 +52,7 @@
 
     jobs:
       - 'engine-verify-{environment-type}-{distro}-{cloud}-{stream}'
-      - 'engine-verify-packaging-{distro}-{stream}'
+      - 'engine-verify-package-{distro}-{stream}'
 
 - job-template:
     name: 'engine-verify-{environment-type}-{distro}-{cloud}-{stream}'
           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: ARTIFACT_TO_DOWNLOAD
+          default: "k8s-installer-ubuntu1804.bsx"
+          description: 'Artifact to download'
       - string:
           name: NORDIX_ARM_PUBLIC_IP
           default: '91.106.198.25'
           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: NORDIX_ARTIFACT_URL
-          default: "$NORDIX_ARM_HTTPS_URL/$NORDIX_ARM_REPO/installer/oss/change/$GERRIT_CHANGE_NUMBER/k8s-installer-ubuntu1804.bsx"
-          description: 'Name of the repository to upload and download artifact to/from. Depends on the stack'
       - string:
           name: CI_LOOP
           default: 'verify'
           readable-message: 'true'
 
     builders:
+      - 'wait-pkg-mgr-macro'
+      - 'generate-ssh-keypair-macro'
+      - 'generate-job-metadata-macro'
       - multijob:
-          name: packaging
+          name: package
           condition: SUCCESSFUL
           execution-type: PARALLEL
           projects:
-            - name: 'engine-verify-packaging-{distro}-{stream}'
+            - name: 'engine-verify-package-{distro}-{stream}'
               current-parameters: true
               node-parameters: true
+              property-file: "$WORKSPACE/build.properties"
               kill-phase-on: FAILURE
               abort-all-job: true
       - multijob:
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                 PROJECT=$GERRIT_PROJECT
                 BRANCH=$BRANCH
+                ARTIFACT_TO_DOWNLOAD=$ARTIFACT_TO_DOWNLOAD
                 NORDIX_ARM_PUBLIC_IP=$NORDIX_ARM_PUBLIC_IP
-                NORDIX_ARTIFACT_URL=$NORDIX_ARTIFACT_URL
                 EXECUTION_MODE=$EXECUTION_MODE
                 VERBOSITY=$VERBOSITY
                 DISTRO=$DISTRO
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
                 PDF=$PDF
                 IDF=$IDF
+              property-file: "$WORKSPACE/build.properties"
               kill-phase-on: FAILURE
               abort-all-job: false
             - name: 'engine-verify-{environment-type}-deploy-test-{distro}-city-cloud-master'
                 GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER
                 PROJECT=$GERRIT_PROJECT
                 BRANCH=$BRANCH
+                ARTIFACT_TO_DOWNLOAD=$ARTIFACT_TO_DOWNLOAD
                 NORDIX_ARM_PUBLIC_IP=$NORDIX_ARM_PUBLIC_IP
-                NORDIX_ARTIFACT_URL=$NORDIX_ARTIFACT_URL
                 EXECUTION_MODE=$EXECUTION_MODE
                 VERBOSITY=$VERBOSITY
                 DISTRO=$DISTRO
                 DEPLOY_SCENARIO=$DEPLOY_SCENARIO
                 PDF=$PDF
                 IDF=$IDF
+              property-file: "$WORKSPACE/build.properties"
               kill-phase-on: FAILURE
               abort-all-job: false
 
 - job-template:
-    name: 'engine-verify-packaging-{distro}-{stream}'
+    name: 'engine-verify-package-{distro}-{stream}'
 
     disabled: '{obj:disabled}'
 
           clean_before: false
 
     builders:
-      - 'engine-wait-pkg-mgr-macro'
-      - 'engine-generate-ssh-keypair-macro'
-      - 'engine-packaging-macro'
-      - 'engine-upload-artifact-macro'
+      - 'package-macro'
+      - 'upload-artifact-macro'
similarity index 96%
rename from jjb/engine/engine-verify-jobs/engine-verify-offline-deploy-test.yaml
rename to jjb/engine/verify-jobs/engine-verify-offline-deploy-test.yaml
index e16398a6981432d9c96d7336a5d25c626e112593..561a8950dcc6c56b7a0c36ab03f2b4ce232bd5f1 100644 (file)
           single-use: True
 
     builders:
-      - 'engine-wait-pkg-mgr-macro'
+      - 'wait-pkg-mgr-macro'
       - shell: |
           #!/bin/bash
           sudo sed -i 's/^search/# search/' /etc/resolv.conf
-      - 'engine-generate-ssh-keypair-macro'
-      - 'engine-download-artifact-macro'
+      - 'generate-ssh-keypair-macro'
+      - 'download-artifact-macro'
       - multijob:
           name: "offline deployment on {type} instances"
           condition: SUCCESSFUL
                 - NOT_BUILT
                 - UNSTABLE
               build-steps:
-                - 'engine-wait-pkg-mgr-macro'
-                - 'engine-delete-stack-macro'
+                - 'wait-pkg-mgr-macro'
+                - 'delete-stack-macro'
 
 - job-template:
     name: 'engine-verify-offline-{phase}-{distro}-{cloud}-{type}-{stream}'
       - fix-workspace-permissions
 
     builders:
-      - 'engine-{phase}-macro'
+      - '{phase}-macro'
similarity index 96%
rename from jjb/engine/engine-verify-jobs/engine-verify-online-deploy-test.yaml
rename to jjb/engine/verify-jobs/engine-verify-online-deploy-test.yaml
index 3118e34da02bfb1213822e099373e2526470cad6..bd53c61af2531177dc3aec4efd79f877eb04c1c3 100644 (file)
           clean_before: false
 
     builders:
-      - 'engine-wait-pkg-mgr-macro'
-      - 'engine-generate-ssh-keypair-macro'
-      - 'engine-download-artifact-macro'
+      - 'wait-pkg-mgr-macro'
+      - 'generate-ssh-keypair-macro'
+      - 'download-artifact-macro'
       - multijob:
           name: "online deployment on {type} instances"
           condition: SUCCESSFUL
                 - NOT_BUILT
                 - UNSTABLE
               build-steps:
-                - 'engine-wait-pkg-mgr-macro'
-                - 'engine-delete-stack-macro'
+                - 'wait-pkg-mgr-macro'
+                - 'delete-stack-macro'
 
 - job-template:
     name: 'engine-verify-online-{phase}-{distro}-{cloud}-{type}-{stream}'
           clean_before: false
 
     builders:
-      - 'engine-{phase}-macro'
+      - '{phase}-macro'
similarity index 99%
rename from jjb/engine/engine-verify-jobs/engine-verify-tox.yaml
rename to jjb/engine/verify-jobs/engine-verify-tox.yaml
index 1cf39621180d98c59364f841c3edfba73e1e5880..4561c13ec41f082a7c483e83c7529021cef28759 100644 (file)
           clean_before: false
 
     builders:
-      - 'engine-verify-tox-macro'
+      - 'tox-macro'
 
 # vim: set ts=2 sw=2 expandtab: