From 900feabe79816b597ec9d865d39f803641f15212 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Thu, 31 Aug 2017 22:20:50 +0200 Subject: fuel, armband: Sync deploy scripts, cleanup Run shellcheck on touched files, fix minor warnings. Prepare for upcoming changes: - ISO artifact will be obsoleted (later); - Fuel and Armband should use the same deploy script; Fuel: - rename securedlab local copy to lab-config; Armband: - drop deploy cache, Danube jobs can work without it, master/next jobs no longer use it; - move TMPDIR to $HOME (was in $WORKSPACE), so it's persistent; Change-Id: I9f8c47f9ca50de3c53c62ca6a08df0cc3a73abd3 Signed-off-by: Alexandru Avadanii --- jjb/armband/armband-deploy.sh | 101 ++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 53 deletions(-) (limited to 'jjb/armband') diff --git a/jjb/armband/armband-deploy.sh b/jjb/armband/armband-deploy.sh index 05679aa27..ac668b2b0 100755 --- a/jjb/armband/armband-deploy.sh +++ b/jjb/armband/armband-deploy.sh @@ -1,8 +1,7 @@ #!/bin/bash # SPDX-license-identifier: Apache-2.0 ############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# (c) 2017 Enea Software AB +# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB and others. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at @@ -21,90 +20,84 @@ if [[ "$BRANCH" != 'master' ]]; then echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment" fi -if [[ "$JOB_NAME" =~ "merge" ]]; then +# shellcheck disable=SC2153 +if [[ "${JOB_NAME}" =~ "merge" ]]; then # set simplest scenario for virtual deploys to run for merges DEPLOY_SCENARIO="os-nosdn-nofeature-ha" -elif [[ "$BRANCH" != 'master' ]]; then +elif [[ "${BRANCH}" != 'master' ]]; then # for none-merge deployments # checkout the commit that was used for building the downloaded artifact # to make sure the ISO and deployment mechanism uses same versions - echo "Checking out $OPNFV_GIT_SHA1" - git checkout $OPNFV_GIT_SHA1 --quiet + echo "Checking out ${OPNFV_GIT_SHA1}" + git checkout "${OPNFV_GIT_SHA1}" --quiet fi # set deployment parameters -export TMPDIR=${WORKSPACE}/tmpdir - +export TMPDIR=${HOME}/tmpdir +BRIDGE=${BRIDGE:-pxebr} +# shellcheck disable=SC2153 LAB_NAME=${NODE_NAME/-*} +# shellcheck disable=SC2153 POD_NAME=${NODE_NAME/*-} +# Armband does not require deploy script to be ran with sudo +SUDO= -# we currently support enea -if [[ ! $LAB_NAME =~ (arm|enea) ]]; then - echo "Unsupported/unidentified lab $LAB_NAME. Cannot continue!" +# we currently support arm, enea labs +if [[ ! "${LAB_NAME}" =~ (arm|enea) ]]; then + echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!" exit 1 fi -echo "Using configuration for $LAB_NAME" +echo "Using configuration for ${LAB_NAME}" -# create TMPDIR if it doesn't exist -mkdir -p $TMPDIR +# create TMPDIR if it doesn't exist, change permissions +mkdir -p "${TMPDIR}" +chmod a+x "${HOME}" "${TMPDIR}" -cd $WORKSPACE -if [[ $LAB_CONFIG_URL =~ ^(git|ssh):// ]]; then - echo "Cloning securedlab repo $BRANCH" - git clone --quiet --branch $BRANCH $LAB_CONFIG_URL lab-config +cd "${WORKSPACE}" || exit 1 +if [[ "${LAB_CONFIG_URL}" =~ ^(git|ssh):// ]]; then + echo "Cloning securedlab repo ${BRANCH}" + git clone --quiet --branch "${BRANCH}" "${LAB_CONFIG_URL}" lab-config LAB_CONFIG_URL=file://${WORKSPACE}/lab-config # Source local_env if present, which contains POD-specific config - local_env="${WORKSPACE}/lab-config/labs/$LAB_NAME/$POD_NAME/fuel/config/local_env" - if [ -e $local_env ]; then + local_env="${WORKSPACE}/lab-config/labs/${LAB_NAME}/${POD_NAME}/fuel/config/local_env" + if [ -e "${local_env}" ]; then echo "-- Sourcing local environment file" - source $local_env + source "${local_env}" fi fi # releng wants us to use nothing else but opnfv.iso for now. We comply. -ISO_FILE=$WORKSPACE/opnfv.iso +ISO_FILE=file://${WORKSPACE}/opnfv.iso # log file name FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz" -# Deploy Cache (to enable just create the deploy-cache subdir) -# NOTE: Only available when ISO files are cached using ISOSTORE mechanism -DEPLOY_CACHE=${ISOSTORE:-/iso_mount/opnfv_ci}/${BRANCH##*/}/deploy-cache -if [[ -d "${DEPLOY_CACHE}" ]]; then - echo "Deploy cache dir present." - echo "--------------------------------------------------------" - echo "Fuel@OPNFV deploy cache: ${DEPLOY_CACHE}" - DEPLOY_CACHE="-C ${DEPLOY_CACHE}" -else - DEPLOY_CACHE="" -fi - # construct the command -DEPLOY_COMMAND="$WORKSPACE/ci/deploy.sh -b ${LAB_CONFIG_URL} \ - -l $LAB_NAME -p $POD_NAME -s $DEPLOY_SCENARIO -i file://${ISO_FILE} \ - -B ${DEFAULT_BRIDGE:-pxebr} -S $TMPDIR -L $WORKSPACE/$FUEL_LOG_FILENAME \ - ${DEPLOY_CACHE}" +DEPLOY_COMMAND="${SUDO} ${WORKSPACE}/ci/deploy.sh -b ${LAB_CONFIG_URL} \ + -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} -i ${ISO_FILE} \ + -B ${DEFAULT_BRIDGE:-${BRIDGE}} -S ${TMPDIR} \ + -L ${WORKSPACE}/${FUEL_LOG_FILENAME}" # log info to console echo "Deployment parameters" echo "--------------------------------------------------------" -echo "Scenario: $DEPLOY_SCENARIO" -echo "Lab: $LAB_NAME" -echo "POD: $POD_NAME" -[[ "$BRANCH" != 'master' ]] && echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}" +echo "Scenario: ${DEPLOY_SCENARIO}" +echo "Lab: ${LAB_NAME}" +echo "POD: ${POD_NAME}" +[[ "${BRANCH}" != 'master' ]] && echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}" echo -echo "Starting the deployment using $INSTALLER_TYPE. This could take some time..." +echo "Starting the deployment using ${INSTALLER_TYPE}. This could take some time..." echo "--------------------------------------------------------" echo # start the deployment echo "Issuing command" -echo "$DEPLOY_COMMAND" +echo "${DEPLOY_COMMAND}" echo -$DEPLOY_COMMAND +${DEPLOY_COMMAND} exit_code=$? echo @@ -112,16 +105,18 @@ echo "--------------------------------------------------------" echo "Deployment is done!" # upload logs for baremetal deployments -# work with virtual deployments is still going on so we skip that for the timebeing -if [[ "$JOB_NAME" =~ "baremetal-daily" ]]; then +# work with virtual deployments is still going on, so skip that for now +if [[ "${JOB_NAME}" =~ (baremetal-daily|baremetal-weekly) ]]; then echo "Uploading deployment logs" - gsutil cp $WORKSPACE/$FUEL_LOG_FILENAME gs://$GS_URL/logs/$FUEL_LOG_FILENAME > /dev/null 2>&1 - echo "Logs are available as http://$GS_URL/logs/$FUEL_LOG_FILENAME" + gsutil cp "${WORKSPACE}/${FUEL_LOG_FILENAME}" \ + "gs://${GS_URL}/logs/${FUEL_LOG_FILENAME}" > /dev/null 2>&1 + echo "Logs are available at http://${GS_URL}/logs/${FUEL_LOG_FILENAME}" fi -if [[ $exit_code -ne 0 ]]; then +if [[ "${exit_code}" -ne 0 ]]; then echo "Deployment failed!" - exit $exit_code -else - echo "Deployment is successful!" + exit "${exit_code}" fi + +echo "Deployment is successful!" +exit 0 -- cgit From 9ff16eb5ae11ceb402ce7f66371e13073bc2cbd4 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Fri, 1 Sep 2017 20:46:31 +0200 Subject: fuel, armband: Drop armband-deploy.sh Since armband-deploy.sh is merely a clone of fuel-deploy.sh, which we recently synced, drop armband-deploy.sh in favor of an universal fuel-deploy.sh, which will handle deploys for both projects. Change-Id: I653b4e67d9246951a284671e0cf559394661a1ad Signed-off-by: Alexandru Avadanii --- jjb/armband/armband-ci-jobs.yml | 2 +- jjb/armband/armband-deploy.sh | 122 ---------------------------------------- 2 files changed, 1 insertion(+), 123 deletions(-) delete mode 100755 jjb/armband/armband-deploy.sh (limited to 'jjb/armband') diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml index a6b781efc..6dbcfdc90 100644 --- a/jjb/armband/armband-ci-jobs.yml +++ b/jjb/armband/armband-ci-jobs.yml @@ -200,7 +200,7 @@ - shell: !include-raw-escape: ./armband-download-artifact.sh - shell: - !include-raw-escape: ./armband-deploy.sh + !include-raw-escape: ../fuel/fuel-deploy.sh publishers: - email: diff --git a/jjb/armband/armband-deploy.sh b/jjb/armband/armband-deploy.sh deleted file mode 100755 index ac668b2b0..000000000 --- a/jjb/armband/armband-deploy.sh +++ /dev/null @@ -1,122 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea Software AB and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -set -o nounset -set -o pipefail - -export TERM="vt220" - -if [[ "$BRANCH" != 'master' ]]; then - # source the file so we get OPNFV vars - source latest.properties - - # echo the info about artifact that is used during the deployment - echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment" -fi - -# shellcheck disable=SC2153 -if [[ "${JOB_NAME}" =~ "merge" ]]; then - # set simplest scenario for virtual deploys to run for merges - DEPLOY_SCENARIO="os-nosdn-nofeature-ha" -elif [[ "${BRANCH}" != 'master' ]]; then - # for none-merge deployments - # checkout the commit that was used for building the downloaded artifact - # to make sure the ISO and deployment mechanism uses same versions - echo "Checking out ${OPNFV_GIT_SHA1}" - git checkout "${OPNFV_GIT_SHA1}" --quiet -fi - -# set deployment parameters -export TMPDIR=${HOME}/tmpdir -BRIDGE=${BRIDGE:-pxebr} -# shellcheck disable=SC2153 -LAB_NAME=${NODE_NAME/-*} -# shellcheck disable=SC2153 -POD_NAME=${NODE_NAME/*-} -# Armband does not require deploy script to be ran with sudo -SUDO= - -# we currently support arm, enea labs -if [[ ! "${LAB_NAME}" =~ (arm|enea) ]]; then - echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!" - exit 1 -fi - -echo "Using configuration for ${LAB_NAME}" - -# create TMPDIR if it doesn't exist, change permissions -mkdir -p "${TMPDIR}" -chmod a+x "${HOME}" "${TMPDIR}" - -cd "${WORKSPACE}" || exit 1 -if [[ "${LAB_CONFIG_URL}" =~ ^(git|ssh):// ]]; then - echo "Cloning securedlab repo ${BRANCH}" - git clone --quiet --branch "${BRANCH}" "${LAB_CONFIG_URL}" lab-config - LAB_CONFIG_URL=file://${WORKSPACE}/lab-config - - # Source local_env if present, which contains POD-specific config - local_env="${WORKSPACE}/lab-config/labs/${LAB_NAME}/${POD_NAME}/fuel/config/local_env" - if [ -e "${local_env}" ]; then - echo "-- Sourcing local environment file" - source "${local_env}" - fi -fi - -# releng wants us to use nothing else but opnfv.iso for now. We comply. -ISO_FILE=file://${WORKSPACE}/opnfv.iso - -# log file name -FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz" - -# construct the command -DEPLOY_COMMAND="${SUDO} ${WORKSPACE}/ci/deploy.sh -b ${LAB_CONFIG_URL} \ - -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} -i ${ISO_FILE} \ - -B ${DEFAULT_BRIDGE:-${BRIDGE}} -S ${TMPDIR} \ - -L ${WORKSPACE}/${FUEL_LOG_FILENAME}" - -# log info to console -echo "Deployment parameters" -echo "--------------------------------------------------------" -echo "Scenario: ${DEPLOY_SCENARIO}" -echo "Lab: ${LAB_NAME}" -echo "POD: ${POD_NAME}" -[[ "${BRANCH}" != 'master' ]] && echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}" -echo -echo "Starting the deployment using ${INSTALLER_TYPE}. This could take some time..." -echo "--------------------------------------------------------" -echo - -# start the deployment -echo "Issuing command" -echo "${DEPLOY_COMMAND}" -echo - -${DEPLOY_COMMAND} -exit_code=$? - -echo -echo "--------------------------------------------------------" -echo "Deployment is done!" - -# upload logs for baremetal deployments -# work with virtual deployments is still going on, so skip that for now -if [[ "${JOB_NAME}" =~ (baremetal-daily|baremetal-weekly) ]]; then - echo "Uploading deployment logs" - gsutil cp "${WORKSPACE}/${FUEL_LOG_FILENAME}" \ - "gs://${GS_URL}/logs/${FUEL_LOG_FILENAME}" > /dev/null 2>&1 - echo "Logs are available at http://${GS_URL}/logs/${FUEL_LOG_FILENAME}" -fi - -if [[ "${exit_code}" -ne 0 ]]; then - echo "Deployment failed!" - exit "${exit_code}" -fi - -echo "Deployment is successful!" -exit 0 -- cgit From a116ff4c8b680804ca9628a8ff88c4c55e61e38e Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Fri, 1 Sep 2017 21:13:00 +0200 Subject: fuel, armband: Remove build jobs and scripts While at it, cleanup obsolete parameters specific to build ops. JIRA: FUEL-277 JIRA: FUEL-278 Change-Id: Id45dfe6855c95c425ac9aa771519d450ba9da3b5 Signed-off-by: Alexandru Avadanii --- jjb/armband/armband-ci-jobs.yml | 8 --- jjb/armband/armband-project-jobs.yml | 95 -------------------------- jjb/armband/armband-verify-jobs.yml | 32 --------- jjb/armband/armband-workspace-cleanup.sh | 15 ---- jjb/armband/build.sh | 114 ------------------------------- jjb/armband/upload-artifacts.sh | 93 ------------------------- 6 files changed, 357 deletions(-) delete mode 100644 jjb/armband/armband-project-jobs.yml delete mode 100755 jjb/armband/armband-workspace-cleanup.sh delete mode 100755 jjb/armband/build.sh delete mode 100755 jjb/armband/upload-artifacts.sh (limited to 'jjb/armband') diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml index 6dbcfdc90..5768e5090 100644 --- a/jjb/armband/armband-ci-jobs.yml +++ b/jjb/armband/armband-ci-jobs.yml @@ -213,14 +213,6 @@ - parameter: name: armband-ci-parameter parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: $HOME/opnfv/cache/$INSTALLER_TYPE - description: "Directory where the cache to be used during the build is located." - string: name: GS_URL default: artifacts.opnfv.org/$PROJECT{gs-pathname} diff --git a/jjb/armband/armband-project-jobs.yml b/jjb/armband/armband-project-jobs.yml deleted file mode 100644 index 0623b5576..000000000 --- a/jjb/armband/armband-project-jobs.yml +++ /dev/null @@ -1,95 +0,0 @@ -################################################### -# All the jobs except verify have been removed! -# They will only be enabled on request by projects! -################################################### -- project: - name: armband - - project: '{name}' - - installer: 'fuel' - - jobs: - - 'armband-{installer}-build-daily-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - - euphrates: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: true - -- job-template: - name: 'armband-{installer}-build-daily-{stream}' - - disabled: '{obj:disabled}' - - concurrent: false - - properties: - - logrotate-default - - throttle: - enabled: true - max-total: 1 - max-per-node: 1 - option: 'project' - - parameters: - - project-parameter: - project: '{project}' - branch: '{branch}' - - 'opnfv-build-enea-defaults' - - '{installer}-defaults' - - armband-project-parameter: - gs-pathname: '{gs-pathname}' - - scm: - - git-scm - - triggers: - - pollscm: - cron: '0 H/4 * * *' - - wrappers: - - timeout: - timeout: 360 - fail: true - - builders: - - shell: - !include-raw-escape: ./build.sh - - shell: - !include-raw-escape: ./upload-artifacts.sh - - publishers: - - email: - recipients: armband@enea.com - - email-jenkins-admins-on-failure - -######################## -# parameter macros -######################## -- parameter: - name: armband-project-parameter - parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: $HOME/opnfv/cache/$INSTALLER_TYPE - description: "Directory where the cache to be used during the build is located." - - string: - name: GS_URL - default: artifacts.opnfv.org/$PROJECT{gs-pathname} - description: "URL to Google Storage." - - choice: - name: FORCE_BUILD - choices: - - 'false' - - 'true' - description: 'Force build even if there are no changes in the armband repo. Default false' diff --git a/jjb/armband/armband-verify-jobs.yml b/jjb/armband/armband-verify-jobs.yml index c9476b1a2..56f70d68b 100644 --- a/jjb/armband/armband-verify-jobs.yml +++ b/jjb/armband/armband-verify-jobs.yml @@ -22,8 +22,6 @@ phase: - 'basic': slave-label: 'opnfv-build-enea' - - 'build': - slave-label: 'opnfv-build-enea' - 'deploy-virtual': slave-label: 'opnfv-build-enea' - 'smoke-test': @@ -117,20 +115,6 @@ node-parameters: false kill-phase-on: FAILURE abort-all-job: true - - multijob: - name: build - condition: SUCCESSFUL - projects: - - name: 'armband-verify-build-{stream}' - current-parameters: false - predefined-parameters: | - BRANCH=$BRANCH - GERRIT_REFSPEC=$GERRIT_REFSPEC - GERRIT_CHANGE_NUMBER=$GERRIT_CHANGE_NUMBER - GERRIT_CHANGE_COMMIT_MESSAGE=$GERRIT_CHANGE_COMMIT_MESSAGE - node-parameters: false - kill-phase-on: FAILURE - abort-all-job: true - multijob: name: deploy-virtual condition: SUCCESSFUL @@ -212,14 +196,6 @@ echo "Not activated!" -- builder: - name: 'armband-verify-build-macro' - builders: - - shell: - !include-raw: ./build.sh - - shell: - !include-raw: ./armband-workspace-cleanup.sh - - builder: name: 'armband-verify-deploy-virtual-macro' builders: @@ -241,14 +217,6 @@ - parameter: name: 'armband-verify-defaults' parameters: - - string: - name: BUILD_DIRECTORY - default: $WORKSPACE/build_output - description: "Directory where the build artifact will be located upon the completion of the build." - - string: - name: CACHE_DIRECTORY - default: $HOME/opnfv/cache/$INSTALLER_TYPE - description: "Directory where the cache to be used during the build is located." - string: name: GS_URL default: artifacts.opnfv.org/$PROJECT{gs-pathname} diff --git a/jjb/armband/armband-workspace-cleanup.sh b/jjb/armband/armband-workspace-cleanup.sh deleted file mode 100755 index d8948c7a0..000000000 --- a/jjb/armband/armband-workspace-cleanup.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -set -o errexit -set -o nounset -set -o pipefail - -# delete the $WORKSPACE to open some space -/bin/rm -rf $WORKSPACE diff --git a/jjb/armband/build.sh b/jjb/armband/build.sh deleted file mode 100755 index 29c01bb38..000000000 --- a/jjb/armband/build.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# Copyright (c) 2017 Enea AB. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## - -# disable Armband iso build for master branch -if [[ "$BRANCH" == 'master' ]]; then - touch $WORKSPACE/.noupload - echo "--------------------------------------------------------" - echo "Done!" - exit 0 -fi - -set -o errexit -set -o nounset -set -o pipefail - -export TERM="vt220" - -echo "Host info: $(hostname) $(hostname -I)" - -cd $WORKSPACE - -# Armband requires initializing git submodules (e.g. for Fuel's clean_cache.sh) -make submodules-init - -# remove the expired items from cache -test -f $WORKSPACE/ci/clean_cache.sh && $WORKSPACE/ci/clean_cache.sh $CACHE_DIRECTORY - -LATEST_ISO_PROPERTIES=$WORKSPACE/latest.iso.properties -if [[ "$JOB_NAME" =~ "daily" ]]; then - # check to see if we already have an artifact on artifacts.opnfv.org - # for this commit during daily builds - echo "Checking to see if we already built and stored Armband Fuel ISO for this commit" - - curl -s -o $LATEST_ISO_PROPERTIES http://$GS_URL/latest.properties 2>/dev/null -fi - -# get metadata of latest ISO -if grep -q OPNFV_GIT_SHA1 $LATEST_ISO_PROPERTIES 2>/dev/null; then - LATEST_ISO_SHA1=$(grep OPNFV_GIT_SHA1 $LATEST_ISO_PROPERTIES | cut -d'=' -f2) - LATEST_ISO_URL=$(grep OPNFV_ARTIFACT_URL $LATEST_ISO_PROPERTIES | cut -d'=' -f2) -else - LATEST_ISO_SHA1=none -fi - -# get current SHA1 -CURRENT_SHA1=$(git rev-parse HEAD) - -# set FORCE_BUILD to false for non-daily builds -FORCE_BUILD=${FORCE_BUILD:-false} - -if [[ "$CURRENT_SHA1" == "$LATEST_ISO_SHA1" && "$FORCE_BUILD" == "false" ]]; then - echo "***************************************************" - echo " An ISO has already been built for this commit" - echo " $LATEST_ISO_URL" - echo "***************************************************" -else - echo "This commit has not been built yet or forced build! Proceeding with the build." - /bin/rm -f $LATEST_ISO_PROPERTIES - echo -fi - -# log info to console -echo "Starting the build of Armband $INSTALLER_TYPE. This could take some time..." -echo "-----------------------------------------------------------" -echo - -# create the cache directory if it doesn't exist -mkdir -p $CACHE_DIRECTORY - -# set OPNFV_ARTIFACT_VERSION -if [[ "$JOB_NAME" =~ "merge" ]]; then - echo "Building Fuel ISO for a merged change" - export OPNFV_ARTIFACT_VERSION="gerrit-$GERRIT_CHANGE_NUMBER" - echo "Not supported" - exit 1 -else - export OPNFV_ARTIFACT_VERSION=$(date -u +"%Y-%m-%d_%H-%M-%S") -fi - -NOCACHE_PATTERN="verify: no-cache" -if [[ "$JOB_NAME" =~ "verify" && "$GERRIT_CHANGE_COMMIT_MESSAGE" =~ "$NOCACHE_PATTERN" ]]; then - echo "The cache will not be used for this build!" - NOCACHE_ARG="-f P" -fi -NOCACHE_ARG=${NOCACHE_ARG:-} - -# start the build -cd $WORKSPACE/ci -./build.sh -v $OPNFV_ARTIFACT_VERSION $NOCACHE_ARG -c file://$CACHE_DIRECTORY $BUILD_DIRECTORY - -# list the build artifacts -ls -al $BUILD_DIRECTORY - -# save information regarding artifact into file -( - echo "OPNFV_ARTIFACT_VERSION=$OPNFV_ARTIFACT_VERSION" - echo "OPNFV_GIT_URL=$(git config --get remote.origin.url)" - echo "OPNFV_GIT_SHA1=$(git rev-parse HEAD)" - echo "OPNFV_ARTIFACT_URL=$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso" - echo "OPNFV_ARTIFACT_SHA512SUM=$(sha512sum $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso | cut -d' ' -f1)" - echo "OPNFV_BUILD_URL=$BUILD_URL" -) > $WORKSPACE/opnfv.properties - -echo -echo "--------------------------------------------------------" -echo "Done!" diff --git a/jjb/armband/upload-artifacts.sh b/jjb/armband/upload-artifacts.sh deleted file mode 100755 index 97987e2c5..000000000 --- a/jjb/armband/upload-artifacts.sh +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -set -o pipefail - -# configurable environment variables: -# ISOSTORE (/iso_mount/opnfv_ci) - -# check if we built something -if [ -f $WORKSPACE/.noupload ]; then - echo "Nothing new to upload. Exiting." - /bin/rm -f $WORKSPACE/.noupload - exit 0 -fi - -# source the opnfv.properties to get ARTIFACT_VERSION -source $WORKSPACE/opnfv.properties - - -# storing ISOs for verify & merge jobs will be done once we get the disk array -if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then - # store ISO locally on NFS first - ISOSTORE=${ISOSTORE:-/iso_mount/opnfv_ci} - if [[ -d "$ISOSTORE" ]]; then - ISOSTORE=${ISOSTORE}/${BRANCH##*/} - mkdir -p $ISOSTORE - - # remove all but most recent 3 ISOs first to keep iso_mount clean & tidy - cd $ISOSTORE - ls -tp | grep -v '/' | tail -n +4 | xargs -d '\n' /bin/rm -f -- - - # store ISO - echo "Storing latest ISO in local storage" - touch .storing - /bin/cp -f $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso \ - $ISOSTORE/opnfv-$OPNFV_ARTIFACT_VERSION.iso - rm .storing - fi -fi - -# log info to console -echo "Uploading armband artifacts. This could take some time..." -echo - -echo "Started at $(date)" -cd $WORKSPACE -# upload artifact and additional files to google storage -gsutil cp $BUILD_DIRECTORY/opnfv-$OPNFV_ARTIFACT_VERSION.iso \ - gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > gsutil.iso.log 2>&1 -gsutil cp $WORKSPACE/opnfv.properties \ - gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > gsutil.properties.log 2>&1 -if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then - gsutil cp $WORKSPACE/opnfv.properties \ - gs://$GS_URL/latest.properties > gsutil.latest.log 2>&1 -elif [[ "$JOB_NAME" =~ "merge" ]]; then - echo "Uploaded Armband Fuel ISO for a merged change" -fi -echo "Ended at $(date)" - -gsutil -m setmeta \ - -h "Content-Type:text/html" \ - -h "Cache-Control:private, max-age=0, no-transform" \ - gs://$GS_URL/latest.properties \ - gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.properties > /dev/null 2>&1 - -gsutil -m setmeta \ - -h "Cache-Control:private, max-age=0, no-transform" \ - gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > /dev/null 2>&1 - -# disabled errexit due to gsutil setmeta complaints -# BadRequestException: 400 Invalid argument -# check if we uploaded the file successfully to see if things are fine -gsutil ls gs://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso > /dev/null 2>&1 -if [[ $? -ne 0 ]]; then - echo "Problem while uploading artifact!" - echo "Check log $WORKSPACE/gsutil.iso.log on the machine where this build is done." - exit 1 -fi - -echo "Done!" -echo -echo "--------------------------------------------------------" -echo -echo "Artifact is available as http://$GS_URL/opnfv-$OPNFV_ARTIFACT_VERSION.iso" -echo -echo "--------------------------------------------------------" -echo -- cgit From 23456c57f4c62489ebaa83e9978f6b9b8074e137 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Fri, 1 Sep 2017 22:30:42 +0200 Subject: fuel, armband: Remove/disable artifact download Armband no longer requires any artifact before starting a deployment. Fuel (master and stable/E) no longer requires the artifact either, but since there are some stable/danube deploy jobs on ZTE PODs, we will hold off removing for a while. Deprecation warning: fuel-download-artifact.sh will be removed later. JIRA: ARMBAND-295 Change-Id: I3b26733a1120306879eff83b9fac3390b3f5c7b8 Signed-off-by: Alexandru Avadanii --- jjb/armband/armband-ci-jobs.yml | 2 - jjb/armband/armband-download-artifact.sh | 77 -------------------------------- 2 files changed, 79 deletions(-) delete mode 100755 jjb/armband/armband-download-artifact.sh (limited to 'jjb/armband') diff --git a/jjb/armband/armband-ci-jobs.yml b/jjb/armband/armband-ci-jobs.yml index 5768e5090..b27b053a4 100644 --- a/jjb/armband/armband-ci-jobs.yml +++ b/jjb/armband/armband-ci-jobs.yml @@ -197,8 +197,6 @@ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO' builders: - - shell: - !include-raw-escape: ./armband-download-artifact.sh - shell: !include-raw-escape: ../fuel/fuel-deploy.sh diff --git a/jjb/armband/armband-download-artifact.sh b/jjb/armband/armband-download-artifact.sh deleted file mode 100755 index 4f83305d4..000000000 --- a/jjb/armband/armband-download-artifact.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/bash -# SPDX-license-identifier: Apache-2.0 -############################################################################## -# Copyright (c) 2016 Ericsson AB and others. -# (c) 2017 Enea AB -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -set -o errexit -set -o pipefail - -# disable Fuel ISO download for master branch -[[ "$BRANCH" == 'master' ]] && exit 0 - -echo "Host info: $(hostname) $(hostname -I)" - -# Configurable environment variables: -# ISOSTORE (/iso_mount/opnfv_ci) - -if [[ "$JOB_NAME" =~ "merge" ]]; then - echo "Downloading http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties" - # get the properties file for the Armband Fuel ISO built for a merged change - curl -f -s -o $WORKSPACE/latest.properties http://$GS_URL/opnfv-gerrit-$GERRIT_CHANGE_NUMBER.properties -else - # get the latest.properties file in order to get info regarding latest artifact - echo "Downloading http://$GS_URL/latest.properties" - curl -f -s -o $WORKSPACE/latest.properties http://$GS_URL/latest.properties -fi - -# source the file so we get artifact metadata, it will exit if it doesn't exist -source latest.properties - -# echo the info about artifact that is used during the deployment -OPNFV_ARTIFACT=${OPNFV_ARTIFACT_URL/*\/} -echo "Using $OPNFV_ARTIFACT for deployment" - -# Releng doesn't want us to use anything but opnfv.iso for now. We comply. -ISO_FILE=${WORKSPACE}/opnfv.iso - -# using ISOs for verify & merge jobs from local storage will be enabled later -if [[ ! "$JOB_NAME" =~ (verify|merge) ]]; then - # check if we already have the ISO to avoid redownload - ISOSTORE=${ISOSTORE:-/iso_mount/opnfv_ci}/${BRANCH##*/} - if [[ -f "$ISOSTORE/$OPNFV_ARTIFACT" ]]; then - echo "ISO exists locally. Skipping the download and using the file from ISO store" - ln -s $ISOSTORE/$OPNFV_ARTIFACT ${ISO_FILE} - echo "--------------------------------------------------------" - echo - ls -al ${ISO_FILE} - echo - echo "--------------------------------------------------------" - echo "Done!" - exit 0 - fi -fi - -# Use gsutils if available -if $(which gsutil &>/dev/null); then - DOWNLOAD_URL="gs://$OPNFV_ARTIFACT_URL" - CMD="gsutil cp ${DOWNLOAD_URL} ${ISO_FILE}" -else - # download image - # -f returns error if the file was not found or on server error - DOWNLOAD_URL="http://$OPNFV_ARTIFACT_URL" - CMD="curl -f -s -o ${ISO_FILE} ${DOWNLOAD_URL}" -fi - -# log info to console -echo "Downloading the $INSTALLER_TYPE artifact using URL $DOWNLOAD_URL" -echo "This could take some time..." -echo "--------------------------------------------------------" -echo "$CMD" -$CMD -echo "--------------------------------------------------------" -echo "Done!" -- cgit