From 4a03190d37a5ae619bb049f8142fb466070b046f Mon Sep 17 00:00:00 2001 From: Prasad Mukhedkar Date: Tue, 16 Mar 2021 13:38:29 +0100 Subject: [PATCH] Add support for offline package and test for onap release job This commit adds required support to perform xtesting packaging and offline test execution in the onap release pipeline. Signed-off-by: Prasad Mukhedkar Change-Id: I623b5d046b331c6eb73e793aaad7caba2a3816da --- jjb/cloud-infra/engine-macros.yaml | 12 +++++ .../onap-jobs/onap-release-deploy-test.yaml | 9 ++-- .../onap-jobs/onap-release-jobs.yaml | 2 +- .../scripts/download-xtesting-artifact.sh | 41 ++++++++++++++ .../generate-k8sdeployment-environment.sh | 1 + .../scripts/upload-xtesting-artifact.sh | 53 +++++++++++++++++++ 6 files changed, 111 insertions(+), 7 deletions(-) create mode 100755 jjb/cloud-infra/scripts/download-xtesting-artifact.sh create mode 100755 jjb/cloud-infra/scripts/upload-xtesting-artifact.sh diff --git a/jjb/cloud-infra/engine-macros.yaml b/jjb/cloud-infra/engine-macros.yaml index 5ecfe3f5..9cc29956 100644 --- a/jjb/cloud-infra/engine-macros.yaml +++ b/jjb/cloud-infra/engine-macros.yaml @@ -57,12 +57,24 @@ - 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: diff --git a/jjb/cloud-infra/onap-jobs/onap-release-deploy-test.yaml b/jjb/cloud-infra/onap-jobs/onap-release-deploy-test.yaml index 6a419190..04799b77 100644 --- a/jjb/cloud-infra/onap-jobs/onap-release-deploy-test.yaml +++ b/jjb/cloud-infra/onap-jobs/onap-release-deploy-test.yaml @@ -325,7 +325,7 @@ parameters: - string: name: EXECUTION_MODE - default: '{execution-mode}' + default: 'offline-test' description: 'Execution mode' - string: name: TEST_REPO_URL @@ -356,7 +356,7 @@ builders: - 'generate-ssh-keypair-macro' - 'wait-pkg-mgr-macro' - - 'download-deploy-artifact-macro' + - 'download-xtesting-artifact-macro' - 'xtesting-infra-healthcheck-macro' - job-template: @@ -367,7 +367,7 @@ parameters: - string: name: EXECUTION_MODE - default: '{execution-mode}' + default: 'offline-test' description: 'Execution mode' - string: name: TEST_REPO_URL @@ -395,7 +395,4 @@ - fix-workspace-permissions builders: - - 'generate-ssh-keypair-macro' - - 'wait-pkg-mgr-macro' - - 'download-deploy-artifact-macro' - 'xtesting-healthcheck-macro' diff --git a/jjb/cloud-infra/onap-jobs/onap-release-jobs.yaml b/jjb/cloud-infra/onap-jobs/onap-release-jobs.yaml index 09d332f3..db7acb71 100644 --- a/jjb/cloud-infra/onap-jobs/onap-release-jobs.yaml +++ b/jjb/cloud-infra/onap-jobs/onap-release-jobs.yaml @@ -305,7 +305,7 @@ 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 index 00000000..a782907b --- /dev/null +++ b/jjb/cloud-infra/scripts/download-xtesting-artifact.sh @@ -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: diff --git a/jjb/cloud-infra/scripts/generate-k8sdeployment-environment.sh b/jjb/cloud-infra/scripts/generate-k8sdeployment-environment.sh index ca285a46..4535f4d0 100644 --- a/jjb/cloud-infra/scripts/generate-k8sdeployment-environment.sh +++ b/jjb/cloud-infra/scripts/generate-k8sdeployment-environment.sh @@ -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 index 00000000..991a9e71 --- /dev/null +++ b/jjb/cloud-infra/scripts/upload-xtesting-artifact.sh @@ -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: -- 2.25.1