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 <st...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/38876480
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/38876480
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/38876480

Branch: refs/heads/branch-2.0
Commit: 3887648057e30fbaad95395aba433184d41d5fd4
Parents: 86f4686
Author: Sean Busbey <bus...@apache.org>
Authored: Tue Apr 3 12:08:05 2018 -0500
Committer: Sean Busbey <bus...@apache.org>
Committed: Wed Apr 11 01:30:56 2018 -0500

----------------------------------------------------------------------
 dev-support/Jenkinsfile                   | 11 +++++++++++
 dev-support/gather_machine_environment.sh |  5 +++++
 2 files changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/38876480/dev-support/Jenkinsfile
----------------------------------------------------------------------
diff --git a/dev-support/Jenkinsfile b/dev-support/Jenkinsfile
index c91a2b1..238d0e6 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"
 '''

http://git-wip-us.apache.org/repos/asf/hbase/blob/38876480/dev-support/gather_machine_environment.sh
----------------------------------------------------------------------
diff --git a/dev-support/gather_machine_environment.sh 
b/dev-support/gather_machine_environment.sh
index 589dffe..fa99d3f 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

Reply via email to