HBASE-20162 [nightly] depending on pipeline execution we sometimes refer to the wrong workspace

Signed-off-by: Mike Drob <mdrob@apache.org>

 Conflicts:
	dev-support/Jenkinsfile
This commit is contained in:
Sean Busbey 2018-03-08 20:27:21 -06:00
parent eef6b36540
commit 55b3c0c21b
2 changed files with 14 additions and 9 deletions

View File

@ -30,9 +30,6 @@ pipeline {
skipDefaultCheckout() skipDefaultCheckout()
} }
environment { environment {
TOOLS = "${env.WORKSPACE}/tools"
// where we check out to across stages
BASEDIR = "${env.WORKSPACE}/component"
YETUS_RELEASE = '0.7.0' YETUS_RELEASE = '0.7.0'
// where we'll write everything from different steps. Need a copy here so the final step can check for success/failure. // where we'll write everything from different steps. Need a copy here so the final step can check for success/failure.
OUTPUT_DIR_RELATIVE_GENERAL = 'output-general' OUTPUT_DIR_RELATIVE_GENERAL = 'output-general'
@ -42,6 +39,7 @@ pipeline {
PROJECT = 'hbase' PROJECT = 'hbase'
PROJECT_PERSONALITY = 'https://raw.githubusercontent.com/apache/hbase/master/dev-support/hbase-personality.sh' PROJECT_PERSONALITY = 'https://raw.githubusercontent.com/apache/hbase/master/dev-support/hbase-personality.sh'
PERSONALITY_FILE = 'tools/personality.sh'
// This section of the docs tells folks not to use the javadoc tag. older branches have our old version of the check for said tag. // This section of the docs tells folks not to use the javadoc tag. older branches have our old version of the check for said tag.
AUTHOR_IGNORE_LIST = 'src/main/asciidoc/_chapters/developer.adoc,dev-support/test-patch.sh' AUTHOR_IGNORE_LIST = 'src/main/asciidoc/_chapters/developer.adoc,dev-support/test-patch.sh'
WHITESPACE_IGNORE_LIST = '.*/generated/.*' WHITESPACE_IGNORE_LIST = '.*/generated/.*'
@ -49,7 +47,6 @@ pipeline {
ARCHIVE_PATTERN_LIST = 'TEST-*.xml,org.apache.h*.txt,*.dumpstream,*.dump' ARCHIVE_PATTERN_LIST = 'TEST-*.xml,org.apache.h*.txt,*.dumpstream,*.dump'
// These tests currently have known failures. Once they burn down to 0, remove from here so that new problems will cause a failure. // These tests currently have known failures. Once they burn down to 0, remove from here so that new problems will cause a failure.
TESTS_FILTER = 'cc,checkstyle,javac,javadoc,pylint,shellcheck,whitespace,perlcritic,ruby-lint,rubocop,mvnsite,xml' TESTS_FILTER = 'cc,checkstyle,javac,javadoc,pylint,shellcheck,whitespace,perlcritic,ruby-lint,rubocop,mvnsite,xml'
BRANCH_SPECIFIC_DOCKERFILE = "${env.BASEDIR}/dev-support/docker/Dockerfile"
// Flaky urls for different branches. Replace '-' and '.' in branch name by '_' because those // Flaky urls for different branches. Replace '-' and '.' in branch name by '_' because those
// characters are not allowed in bash variable name. // characters are not allowed in bash variable name.
// Not excluding flakies from the nightly build for now. // Not excluding flakies from the nightly build for now.
@ -101,7 +98,8 @@ if [ ! -d "${YETUS_DIR}" ]; then
gunzip -c yetus.tar.gz | tar xpf - -C "${YETUS_DIR}" --strip-components 1 gunzip -c yetus.tar.gz | tar xpf - -C "${YETUS_DIR}" --strip-components 1
fi fi
''' '''
dir ("${env.TOOLS}") { // Set up the file we need at PERSONALITY_FILE location
dir ("tools") {
sh """#!/usr/bin/env bash sh """#!/usr/bin/env bash
echo "Downloading Project personality." echo "Downloading Project personality."
curl -L -o personality.sh "${env.PROJECT_PERSONALITY}" curl -L -o personality.sh "${env.PROJECT_PERSONALITY}"
@ -130,6 +128,7 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}"
} }
} }
environment { environment {
BASEDIR = "${env.WORKSPACE}/component"
// TODO does hadoopcheck need to be jdk specific? // TODO does hadoopcheck need to be jdk specific?
// Should be things that work with multijdk // Should be things that work with multijdk
TESTS = 'all,-unit,-findbugs' TESTS = 'all,-unit,-findbugs'
@ -191,6 +190,7 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}"
branch 'branch-1*' branch 'branch-1*'
} }
environment { environment {
BASEDIR = "${env.WORKSPACE}/component"
TESTS = 'mvninstall,compile,javac,unit,htmlout' TESTS = 'mvninstall,compile,javac,unit,htmlout'
OUTPUT_DIR_RELATIVE = "${env.OUTPUT_DIR_RELATIVE_JDK7}" OUTPUT_DIR_RELATIVE = "${env.OUTPUT_DIR_RELATIVE_JDK7}"
OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE_JDK7}" OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE_JDK7}"
@ -259,6 +259,7 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}"
} }
} }
environment { environment {
BASEDIR = "${env.WORKSPACE}/component"
TESTS = 'mvninstall,compile,javac,unit,findbugs,htmlout' TESTS = 'mvninstall,compile,javac,unit,findbugs,htmlout'
OUTPUT_DIR_RELATIVE = "${env.OUTPUT_DIR_RELATIVE_HADOOP2}" OUTPUT_DIR_RELATIVE = "${env.OUTPUT_DIR_RELATIVE_HADOOP2}"
OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE_HADOOP2}" OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE_HADOOP2}"
@ -334,6 +335,7 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}"
} }
} }
environment { environment {
BASEDIR = "${env.WORKSPACE}/component"
TESTS = 'mvninstall,compile,javac,unit,htmlout' TESTS = 'mvninstall,compile,javac,unit,htmlout'
OUTPUT_DIR_RELATIVE = "${env.OUTPUT_DIR_RELATIVE_HADOOP3}" OUTPUT_DIR_RELATIVE = "${env.OUTPUT_DIR_RELATIVE_HADOOP3}"
OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE_HADOOP3}" OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE_HADOOP3}"
@ -408,6 +410,9 @@ curl -L -o personality.sh "${env.PROJECT_PERSONALITY}"
// this needs to be set to the jdk that ought to be used to build releases on the branch the Jenkinsfile is stored in. // this needs to be set to the jdk that ought to be used to build releases on the branch the Jenkinsfile is stored in.
jdk "JDK 1.7 (latest)" jdk "JDK 1.7 (latest)"
} }
environment {
BASEDIR = "${env.WORKSPACE}/component"
}
steps { steps {
sh '''#!/bin/bash -e sh '''#!/bin/bash -e
echo "Setting up directories" echo "Setting up directories"

View File

@ -18,8 +18,8 @@
declare -i missing_env=0 declare -i missing_env=0
# Validate params # Validate params
for required_env in "TESTS" "TOOLS" "BASEDIR" "ARCHIVE_PATTERN_LIST" "OUTPUT_DIR_RELATIVE" \ for required_env in "TESTS" "PERSONALITY_FILE" "BASEDIR" "ARCHIVE_PATTERN_LIST" "OUTPUT_DIR_RELATIVE" \
"BRANCH_SPECIFIC_DOCKERFILE" "OUTPUT_DIR" "PROJECT" "AUTHOR_IGNORE_LIST" \ "OUTPUT_DIR" "PROJECT" "AUTHOR_IGNORE_LIST" \
"WHITESPACE_IGNORE_LIST" "BRANCH_NAME" "TESTS_FILTER" "DEBUG" \ "WHITESPACE_IGNORE_LIST" "BRANCH_NAME" "TESTS_FILTER" "DEBUG" \
"USE_YETUS_PRERELEASE" "WORKSPACE" "YETUS_RELEASE"; do "USE_YETUS_PRERELEASE" "WORKSPACE" "YETUS_RELEASE"; do
if [ -z "${!required_env}" ]; then if [ -z "${!required_env}" ]; then
@ -44,7 +44,7 @@ if [[ -n "${SET_JAVA_HOME}" ]]; then
YETUS_ARGS=("--java-home=${SET_JAVA_HOME}" "${YETUS_ARGS[@]}") YETUS_ARGS=("--java-home=${SET_JAVA_HOME}" "${YETUS_ARGS[@]}")
fi fi
YETUS_ARGS=("--plugins=${TESTS}" "${YETUS_ARGS[@]}") YETUS_ARGS=("--plugins=${TESTS}" "${YETUS_ARGS[@]}")
YETUS_ARGS=("--personality=${TOOLS}/personality.sh" "${YETUS_ARGS[@]}") YETUS_ARGS=("--personality=${PERSONALITY_FILE}" "${YETUS_ARGS[@]}")
YETUS_ARGS=("--basedir=${BASEDIR}" "${YETUS_ARGS[@]}") YETUS_ARGS=("--basedir=${BASEDIR}" "${YETUS_ARGS[@]}")
YETUS_ARGS=("--archive-list=${ARCHIVE_PATTERN_LIST}" "${YETUS_ARGS[@]}") YETUS_ARGS=("--archive-list=${ARCHIVE_PATTERN_LIST}" "${YETUS_ARGS[@]}")
YETUS_ARGS=("--console-urls" "${YETUS_ARGS[@]}") YETUS_ARGS=("--console-urls" "${YETUS_ARGS[@]}")
@ -52,7 +52,7 @@ YETUS_ARGS=("--console-urls" "${YETUS_ARGS[@]}")
YETUS_ARGS=("--build-url-patchdir=artifact/${OUTPUT_DIR_RELATIVE}" "${YETUS_ARGS[@]}") YETUS_ARGS=("--build-url-patchdir=artifact/${OUTPUT_DIR_RELATIVE}" "${YETUS_ARGS[@]}")
YETUS_ARGS=("--build-url-artifacts=artifact/${OUTPUT_DIR_RELATIVE}" "${YETUS_ARGS[@]}") YETUS_ARGS=("--build-url-artifacts=artifact/${OUTPUT_DIR_RELATIVE}" "${YETUS_ARGS[@]}")
YETUS_ARGS=("--docker" "${YETUS_ARGS[@]}") YETUS_ARGS=("--docker" "${YETUS_ARGS[@]}")
YETUS_ARGS=("--dockerfile=${BRANCH_SPECIFIC_DOCKERFILE}" "${YETUS_ARGS[@]}") YETUS_ARGS=("--dockerfile=${BASEDIR}/dev-support/docker/Dockerfile" "${YETUS_ARGS[@]}")
# Yetus sets BUILDMODE env variable to "full" if this arg is passed. # Yetus sets BUILDMODE env variable to "full" if this arg is passed.
YETUS_ARGS=("--empty-patch" "${YETUS_ARGS[@]}") YETUS_ARGS=("--empty-patch" "${YETUS_ARGS[@]}")
YETUS_ARGS=("--html-report-file=${OUTPUT_DIR}/console-report.html" "${YETUS_ARGS[@]}") YETUS_ARGS=("--html-report-file=${OUTPUT_DIR}/console-report.html" "${YETUS_ARGS[@]}")