From 9bf087d28b599020ff2825107cd6bca8df609a38 Mon Sep 17 00:00:00 2001 From: Sean Busbey Date: Tue, 3 Apr 2018 12:08:05 -0500 Subject: [PATCH] HBASE-20335 nightly job bash cleanup. * Ensure Jenkins steps that invoke bash inline set -e * machine stats script should check that passed directory will work Signed-off-by: Michael Stack --- dev-support/Jenkinsfile | 11 +++++++++++ dev-support/gather_machine_environment.sh | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/dev-support/Jenkinsfile b/dev-support/Jenkinsfile index c91a2b19a2e..238d0e6739f 100644 --- a/dev-support/Jenkinsfile +++ b/dev-support/Jenkinsfile @@ -63,6 +63,7 @@ pipeline { stage ('yetus install') { steps { sh '''#!/usr/bin/env bash +set -e echo "Ensure we have a copy of Apache Yetus." if [[ true != "${USE_YETUS_PRERELEASE}" ]]; then YETUS_DIR="${WORKSPACE}/yetus-${YETUS_RELEASE}" @@ -101,6 +102,7 @@ fi // Set up the file we need at PERSONALITY_FILE location dir ("tools") { sh """#!/usr/bin/env bash +set -e echo "Downloading Project personality." curl -L -o personality.sh "${env.PROJECT_PERSONALITY}" """ @@ -144,12 +146,14 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}" checkout scm } sh '''#!/usr/bin/env bash + set -e rm -rf "${OUTPUT_DIR}" && mkdir "${OUTPUT_DIR}" rm -rf "${OUTPUT_DIR}/machine" && mkdir "${OUTPUT_DIR}/machine" "${BASEDIR}/dev-support/gather_machine_environment.sh" "${OUTPUT_DIR_RELATIVE}/machine" ''' // TODO roll this into the hbase_nightly_yetus script sh '''#!/usr/bin/env bash + set -e rm -rf "${OUTPUT_DIR}/commentfile}" declare -i status=0 if "${BASEDIR}/dev-support/hbase_nightly_yetus.sh" ; then @@ -202,11 +206,13 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}" checkout scm } sh '''#!/usr/bin/env bash + set -e rm -rf "${OUTPUT_DIR}" && mkdir "${OUTPUT_DIR}" rm -rf "${OUTPUT_DIR}/machine" && mkdir "${OUTPUT_DIR}/machine" "${BASEDIR}/dev-support/gather_machine_environment.sh" "${OUTPUT_DIR_RELATIVE}/machine" ''' sh '''#!/usr/bin/env bash + set -e rm -rf "${OUTPUT_DIR}/commentfile}" declare -i status=0 if "${BASEDIR}/dev-support/hbase_nightly_yetus.sh" ; then @@ -273,11 +279,13 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}" checkout scm } sh '''#!/usr/bin/env bash + set -e rm -rf "${OUTPUT_DIR}" && mkdir "${OUTPUT_DIR}" rm -rf "${OUTPUT_DIR}/machine" && mkdir "${OUTPUT_DIR}/machine" "${BASEDIR}/dev-support/gather_machine_environment.sh" "${OUTPUT_DIR_RELATIVE}/machine" ''' sh '''#!/usr/bin/env bash + set -e rm -rf "${OUTPUT_DIR}/commentfile}" declare -i status=0 if "${BASEDIR}/dev-support/hbase_nightly_yetus.sh" ; then @@ -351,11 +359,13 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}" checkout scm } sh '''#!/usr/bin/env bash + set -e rm -rf "${OUTPUT_DIR}" && mkdir "${OUTPUT_DIR}" rm -rf "${OUTPUT_DIR}/machine" && mkdir "${OUTPUT_DIR}/machine" "${BASEDIR}/dev-support/gather_machine_environment.sh" "${OUTPUT_DIR_RELATIVE}/machine" ''' sh '''#!/usr/bin/env bash + set -e rm -rf "${OUTPUT_DIR}/commentfile}" declare -i status=0 if "${BASEDIR}/dev-support/hbase_nightly_yetus.sh" ; then @@ -425,6 +435,7 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}" checkout scm } sh '''#!/usr/bin/env bash + set -e rm -rf "output-srctarball/machine" && mkdir "output-srctarball/machine" "${BASEDIR}/dev-support/gather_machine_environment.sh" "output-srctarball/machine" ''' diff --git a/dev-support/gather_machine_environment.sh b/dev-support/gather_machine_environment.sh index 589dffe9bf6..fa99d3f7e5c 100755 --- a/dev-support/gather_machine_environment.sh +++ b/dev-support/gather_machine_environment.sh @@ -33,6 +33,11 @@ fi declare output=$1 +if [ ! -d "${output}" ] || [ ! -w "${output}" ]; then + echo "Specified output directory must exist and be writable." >&2 + exit 1 +fi + echo "getting machine specs, find in ${BUILD_URL}/artifact/${output}/" echo "JAVA_HOME: ${JAVA_HOME}" >"${output}/java_home" 2>&1 || true ls -l "${JAVA_HOME}" >"${output}/java_home_ls" 2>&1 || true