Add support for offline package and test for onap release job 95/7995/3
authorPrasad Mukhedkar <prasad.mukhedkar@est.tech>
Tue, 16 Mar 2021 12:38:29 +0000 (13:38 +0100)
committerPrasad Mukhedkar <prasad.mukhedkar@est.tech>
Tue, 16 Mar 2021 15:38:31 +0000 (15:38 +0000)
This commit adds required support to perform xtesting packaging
and offline test execution in the onap release pipeline.

Signed-off-by: Prasad Mukhedkar <prasad.mukhedkar@est.tech>
Change-Id: I623b5d046b331c6eb73e793aaad7caba2a3816da

jjb/cloud-infra/engine-macros.yaml
jjb/cloud-infra/onap-jobs/onap-release-deploy-test.yaml
jjb/cloud-infra/onap-jobs/onap-release-jobs.yaml
jjb/cloud-infra/scripts/download-xtesting-artifact.sh [new file with mode: 0755]
jjb/cloud-infra/scripts/generate-k8sdeployment-environment.sh
jjb/cloud-infra/scripts/upload-xtesting-artifact.sh [new file with mode: 0755]

index 5ecfe3f5f1bbc3f5ec52e1d09aaac8aaa953a98d..9cc29956ffd5b977f09a277ef4d8a83aaae5f96c 100644 (file)
       - shell:
           !include-raw: ./scripts/upload-artifact.sh
 
+- builder:
+    name: 'xtesting-upload-artifact-macro'
+    builders:
+      - shell:
+          !include-raw: ./scripts/upload-xtesting-artifact.sh
+
 - builder:
     name: 'download-deploy-artifact-macro'
     builders:
       - shell:
           !include-raw: ./scripts/download-deploy-artifact.sh
 
+- builder:
+    name: 'download-xtesting-artifact-macro'
+    builders:
+      - shell:
+          !include-raw: ./scripts/download-xtesting-artifact.sh
+
 - builder:
     name: 'download-functest-artifact-macro'
     builders:
index 6a419190df732933043c881db9034ee0960c37f5..04799b7736b1131c7e78a9fc4c89a52f21625ec2 100644 (file)
     parameters:
       - string:
           name: EXECUTION_MODE
-          default: '{execution-mode}'
+          default: 'offline-test'
           description: 'Execution mode'
       - string:
           name: TEST_REPO_URL
     builders:
       - 'generate-ssh-keypair-macro'
       - 'wait-pkg-mgr-macro'
-      - 'download-deploy-artifact-macro'
+      - 'download-xtesting-artifact-macro'
       - 'xtesting-infra-healthcheck-macro'
 
 - job-template:
     parameters:
       - string:
           name: EXECUTION_MODE
-          default: '{execution-mode}'
+          default: 'offline-test'
           description: 'Execution mode'
       - string:
           name: TEST_REPO_URL
       - fix-workspace-permissions
 
     builders:
-      - 'generate-ssh-keypair-macro'
-      - 'wait-pkg-mgr-macro'
-      - 'download-deploy-artifact-macro'
       - 'xtesting-healthcheck-macro'
index 09d332f3996fd0fac67d5f9cf96c3a4e4b7ceec9..db7acb7191c082cb8248f7396b794bc923d00abb 100644 (file)
 
     builders:
       - 'test-package-macro'
-      - 'upload-artifact-macro'
+      - 'xtesting-upload-artifact-macro'
 
 - job-template:
     name: 'onap-promote-{distro}-{stream}'
diff --git a/jjb/cloud-infra/scripts/download-xtesting-artifact.sh b/jjb/cloud-infra/scripts/download-xtesting-artifact.sh
new file mode 100755 (executable)
index 0000000..a782907
--- /dev/null
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
+# ================================================================================
+# 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=========================================================
+
+set -o nounset
+set -o errexit
+
+if [[ "$EXECUTION_MODE" == "offline-test" ]]; then
+  REMOTE_ARTIFACT=$(echo $OFFLINE_XTESTING_FILE | sed 's/.*\///g')
+
+  echo "Info  : Downloading artifact from Nordix ARM..."
+  echo "        $NORDIX_ARTIFACT_URL/$REMOTE_ARTIFACT"
+  cd /tmp
+  # NOTE (fdegir): switched from curl -s -S -O to wget to use wget auto-resume functionality
+  wget -q $NORDIX_ARTIFACT_URL/$REMOTE_ARTIFACT
+  echo "Info  : Downloaded the artifact for offline test. Extracting..."
+  echo "        $(ls -al $OFFLINE_XTESTING_FILE)"
+  chmod +x $OFFLINE_XTESTING_FILE
+  $OFFLINE_XTESTING_FILE
+  sudo /bin/rm -rf $OFFLINE_XTESTING_FILE
+else
+  echo "Info  : Online test. Skipping artifact download."
+fi
+
+# vim: set ts=2 sw=2 expandtab:
index ca285a46aa063f7e56e6f49a39c912a94107131a..4535f4d04d494a1cedd8c384b74c824ea4ea9274 100644 (file)
@@ -45,6 +45,7 @@ export NORDIX_ARM_HTTPS_URL="https://artifactory.nordix.org/artifactory"
 export ARTIFACT_ARM_FOLDER="release"
 export BUILD_IDENTIFIER="${K8S_VERSION}/stack/latest"
 export OFFLINE_INSTALLER_FILE="/tmp/${STACK_TYPE}-${K8S_VERSION}-${DISTRO}.bsx"
+export OFFLINE_XTESTING_FILE="/tmp/${STACK_TYPE}-test-${GERRIT_BRANCH}.bsx"
 export BUILD_ARTIFACTS="/tmp/${STACK_TYPE}-${K8S_VERSION}-${DISTRO}.bsx"
 export NORDIX_ARM_REPO="nordix-${STACK_TYPE}"
 # looking to make url looking like
diff --git a/jjb/cloud-infra/scripts/upload-xtesting-artifact.sh b/jjb/cloud-infra/scripts/upload-xtesting-artifact.sh
new file mode 100755 (executable)
index 0000000..991a9e7
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
+# ================================================================================
+# 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=========================================================
+
+set -o nounset
+set -o errexit
+set -o pipefail
+
+export BUILD_ARTIFACTS="/tmp/${STACK_TYPE}-test-${GERRIT_BRANCH}.bsx"
+echo "Info  : Uploading $BUILD_ARTIFACTS to Nordix ARM $NORDIX_ARM_REPO repository"
+
+if [[ "$EXECUTION_MODE" == "packaging" || "$EXECUTION_MODE" == "offline-deployment" ]]; then
+  cd /tmp
+  for BUILD_ARTIFACT in $BUILD_ARTIFACTS; do
+    echo "Info  : Generating checksums for $BUILD_ARTIFACT"
+    ARTIFACT_MD5SUM=$(md5sum $BUILD_ARTIFACT | cut -d' ' -f1)
+    ARTIFACT_SHASUM=$(shasum $BUILD_ARTIFACT | cut -d' ' -f1)
+    ARTIFACT_SHA256SUM=$(sha256sum $BUILD_ARTIFACT | cut -d' ' -f1)
+
+    # NOTE (fdegir): get rid of /tmp from BUILD_ARTIFACT
+    REMOTE_ARTIFACT=$(echo $BUILD_ARTIFACT | sed 's/.*\///g')
+
+    echo "Info  : Uploading $BUILD_ARTIFACT to Nordix Artifactory"
+    curl -s -S \
+        -H "X-JFrog-Art-Api:$NORDIX_ARM_TOKEN" \
+        -H "X-Checksum-MD5:$ARTIFACT_MD5SUM" \
+        -H "X-Checksum-Sha1:$ARTIFACT_SHASUM" \
+        -H "X-Checksum-Sha256:$ARTIFACT_SHA256SUM" \
+        -T $BUILD_ARTIFACT \
+        "$NORDIX_ARTIFACT_URL/$REMOTE_ARTIFACT"
+    echo "Info  : Artifact $BUILD_ARTIFACT is available on $NORDIX_ARTIFACT_URL/$REMOTE_ARTIFACT"
+  done
+else
+  echo "Info  : Online deployment. No artifact to upload."
+fi
+
+# vim: set ts=2 sw=2 expandtab: