From: Fatih Degirmenci Date: Tue, 17 Mar 2020 16:00:27 +0000 (+0000) Subject: engine: Enable testing of online deployments X-Git-Url: https://gerrit.nordix.org/gitweb?a=commitdiff_plain;h=2683ff234d2768d9e6d3c3300e77c56b9115d509;p=infra%2Fcicd.git engine: Enable testing of online deployments Change-Id: I6dfe77d891fe89a7c548915f952fb313cf1a9e3f --- diff --git a/jjb/engine/engine-verify-jobs/engine-verify-deployment-parent-jobs.yaml b/jjb/engine/engine-verify-jobs/engine-verify-deployment-parent-jobs.yaml index bee203e70..5376bb06f 100644 --- a/jjb/engine/engine-verify-jobs/engine-verify-deployment-parent-jobs.yaml +++ b/jjb/engine/engine-verify-jobs/engine-verify-deployment-parent-jobs.yaml @@ -31,10 +31,10 @@ - online: disabled: false execution-mode: online-deployment - successful: true - failed: true - unstable: true - notbuilt: true + successful: false + failed: false + unstable: false + notbuilt: false - offline: disabled: false execution-mode: offline-deployment @@ -74,7 +74,7 @@ description: 'Distribution to use for configuring target nodes (networking etc.)' - string: name: VERBOSITY - default: 'false' + default: 'true' description: 'Verbosity setting for the engine - true or false - default is false' - string: name: NORDIX_ARM_PUBLIC_IP @@ -255,6 +255,7 @@ clean_before: false builders: + - 'engine-wait-pkg-mgr-macro' - 'engine-generate-ssh-keypair-macro' - 'engine-packaging-macro' - 'engine-upload-artifact-macro' diff --git a/jjb/engine/engine-verify-jobs/engine-verify-macros.yaml b/jjb/engine/engine-verify-jobs/engine-verify-macros.yaml index 1bb5cb83c..f7f443caf 100644 --- a/jjb/engine/engine-verify-jobs/engine-verify-macros.yaml +++ b/jjb/engine/engine-verify-jobs/engine-verify-macros.yaml @@ -69,3 +69,9 @@ builders: - shell: !include-raw: ./scripts/delete-heat-stack.sh + +- builder: + name: 'engine-wait-pkg-mgr-macro' + builders: + - shell: + !include-raw: ./scripts/wait-for-pkg-manager.sh diff --git a/jjb/engine/engine-verify-jobs/engine-verify-offline-deploy-test.yaml b/jjb/engine/engine-verify-jobs/engine-verify-offline-deploy-test.yaml index ee94e3abb..027657aa8 100644 --- a/jjb/engine/engine-verify-jobs/engine-verify-offline-deploy-test.yaml +++ b/jjb/engine/engine-verify-jobs/engine-verify-offline-deploy-test.yaml @@ -77,37 +77,35 @@ description: 'Name of heat-environment file to use.' - string: name: STACK_NAME - default: "nordix-cicd-verify-engine-{distro}-$BUILD_NUMBER" + default: "nordix-cicd-verify-engine-offline-{distro}-$BUILD_NUMBER" description: 'Name of the created stack' - string: name: KEYPAIR_NAME - default: "keypair-nordix-cicd-verify-engine-{distro}-$BUILD_NUMBER" + default: "keypair-nordix-cicd-verify-offline-engine-{distro}-$BUILD_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: 'yes' + default: 'true' description: 'Delete the stack upon completion of the build' properties: - logrotate -# - build-blocker: -# use-build-blocker: true -# blocking-jobs: -# - 'engine-verify-online-deploy-test-.*' -# - 'engine-verify-offline-deploy-test-.*' -# block-level: 'NODE' - throttle: max-per-node: 1 max-total: 3 @@ -130,6 +128,10 @@ single-use: True builders: + - 'engine-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' - multijob: @@ -141,7 +143,7 @@ current-parameters: true node-parameters: true kill-phase-on: FAILURE - abort-all-job: true + abort-all-job: false - multijob: name: "Offline Testing on {type} instances" condition: SUCCESSFUL @@ -151,7 +153,7 @@ current-parameters: true node-parameters: true kill-phase-on: FAILURE - abort-all-job: true + abort-all-job: false - conditional-step: condition-kind: and condition-operands: diff --git a/jjb/engine/engine-verify-jobs/engine-verify-online-deploy-test.yaml b/jjb/engine/engine-verify-jobs/engine-verify-online-deploy-test.yaml index 61d9d18bf..c295c788c 100644 --- a/jjb/engine/engine-verify-jobs/engine-verify-online-deploy-test.yaml +++ b/jjb/engine/engine-verify-jobs/engine-verify-online-deploy-test.yaml @@ -77,37 +77,35 @@ description: 'Name of heat-environment file to use.' - string: name: STACK_NAME - default: "nordix-cicd-verify-engine-{distro}-$BUILD_NUMBER" + default: "nordix-cicd-verify-engine-online-{distro}-$BUILD_NUMBER" description: 'Name of the created stack' - string: name: KEYPAIR_NAME - default: "keypair-nordix-cicd-verify-engine-{distro}-$BUILD_NUMBER" + default: "keypair-nordix-cicd-verify-online-engine-{distro}-$BUILD_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: 'yes' + default: 'true' description: 'Delete the stack upon completion of the build' properties: - logrotate -# - build-blocker: -# use-build-blocker: true -# blocking-jobs: -# - 'engine-verify-online-deploy-test-.*' -# - 'engine-verify-offline-deploy-test-.*' -# block-level: 'NODE' - throttle: max-per-node: 1 max-total: 3 @@ -138,6 +136,7 @@ clean_before: false builders: + - 'engine-wait-pkg-mgr-macro' - 'engine-generate-ssh-keypair-macro' - 'engine-download-artifact-macro' - multijob: @@ -149,7 +148,7 @@ current-parameters: true node-parameters: true kill-phase-on: FAILURE - abort-all-job: true + abort-all-job: false - multijob: name: "Online Testing on {type} instances" condition: SUCCESSFUL @@ -159,7 +158,7 @@ current-parameters: true node-parameters: true kill-phase-on: FAILURE - abort-all-job: true + abort-all-job: false - conditional-step: condition-kind: and condition-operands: diff --git a/jjb/engine/engine-verify-jobs/scripts/test.sh b/jjb/engine/engine-verify-jobs/scripts/test.sh index a1c7f0e03..cc793530a 100755 --- a/jjb/engine/engine-verify-jobs/scripts/test.sh +++ b/jjb/engine/engine-verify-jobs/scripts/test.sh @@ -22,4 +22,14 @@ set -o nounset set -o errexit set -o pipefail -echo "Info : Not implemented!" +if [[ "$EXECUTION_MODE" == "offline-deployment" ]]; then + echo "Info : Testing of offline deployments is not currently supported!" + exit 0 +fi + +echo "Info : Cloning infra/test repository" +cd $HOME && /bin/rm -rf $WORKSPACE +git clone -q $TEST_REPO_URL $WORKSPACE + +cd $WORKSPACE/test +./test.sh -f $TEST_FW -t $TEST_SUITE diff --git a/jjb/engine/engine-verify-jobs/scripts/wait-for-pkg-manager.sh b/jjb/engine/engine-verify-jobs/scripts/wait-for-pkg-manager.sh new file mode 100755 index 000000000..99f754402 --- /dev/null +++ b/jjb/engine/engine-verify-jobs/scripts/wait-for-pkg-manager.sh @@ -0,0 +1,48 @@ +#!/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 errexit +set -o nounset + +source /etc/os-release || source /usr/lib/os-release +case ${ID,,} in + centos) + pkg_mgr_cmd="yum" + ;; + ubuntu) + pkg_mgr_cmd="apt" + ;; +esac + +# just wait few seconds before attempting to check pkg manager process +sleep 10 + +echo "Info: Waiting for completion of an existing $pkg_mgr_cmd process before proceeding..." +while true; do + pkg_mgr_process=$(pgrep -f $pkg_mgr_cmd | cat) + if [[ -n $pkg_mgr_process ]]; then + sleep 10 + else + break + fi +done +echo "Info: $pkg_mgr_cmd process done. Continuing..." + +# vim: set ts=2 sw=2 expandtab: