Rename arm-pod3-2 to arm-pod4
[releng.git] / jjb / armband / armband-deploy.sh
index d762650..e445e08 100755 (executable)
@@ -8,10 +8,11 @@
 # 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
 
+export TERM="vt220"
+
 # source the file so we get OPNFV vars
 source latest.properties
 
@@ -31,6 +32,14 @@ fi
 
 # set deployment parameters
 export TMPDIR=${WORKSPACE}/tmpdir
+
+# arm-pod4 is an aarch64 jenkins slave for the same POD as the
+# x86 jenkins slave arm-pod3; therefore we use the same pod name
+# to deploy the pod from both jenkins slaves
+if [[ "${NODE_NAME}" == "arm-pod4" ]]; then
+    NODE_NAME="arm-pod3"
+fi
+
 LAB_NAME=${NODE_NAME/-*}
 POD_NAME=${NODE_NAME/*-}
 
@@ -47,23 +56,45 @@ mkdir -p $TMPDIR
 
 cd $WORKSPACE
 if [[ $LAB_CONFIG_URL =~ ^(git|ssh):// ]]; then
-    echo "cloning $LAB_CONFIG_URL"
-    git clone --quiet --branch ${GIT_BRANCH##origin/} $LAB_CONFIG_URL lab-config
+    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="$LAB_CONFIG_URL/labs/$LAB_NAME/$POD_NAME/fuel/config/local_env"
+    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
 
+if [[ "$NODE_NAME" =~ "virtual" ]]; then
+    POD_NAME="virtual_kvm"
+fi
+
 # releng wants us to use nothing else but opnfv.iso for now. We comply.
 ISO_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 -l $LAB_NAME -p $POD_NAME -b ${LAB_CONFIG_URL} -s $DEPLOY_SCENARIO -i file://${ISO_FILE} -H -B ${DEFAULT_BRIDGE:-pxebr} -S $TMPDIR"
+DEPLOY_COMMAND="$WORKSPACE/ci/deploy.sh -b ${LAB_CONFIG_URL} \
+    -l $LAB_NAME -p $POD_NAME -s $DEPLOY_SCENARIO -i file://${ISO_FILE} \
+    -H -B ${DEFAULT_BRIDGE:-pxebr} -S $TMPDIR -L $WORKSPACE/$FUEL_LOG_FILENAME \
+    ${DEPLOY_CACHE}"
 
 # log info to console
 echo "Deployment parameters"
@@ -83,7 +114,23 @@ echo "$DEPLOY_COMMAND"
 echo
 
 $DEPLOY_COMMAND
+exit_code=$?
 
 echo
 echo "--------------------------------------------------------"
-echo "Deployment is done successfully!"
+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
+    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"
+fi
+
+if [[ $exit_code -ne 0 ]]; then
+    echo "Deployment failed!"
+    exit $exit_code
+else
+    echo "Deployment is successful!"
+fi