HBASE-19570 Add hadoop3 tests to Nightly master/branch-2 runs.
Jenkins fails the whole build immediately if any stage fails. Hadoop2 tests run before Hadoop3 tests. So Hadoop3 tests will run only if hadoop2 tests pass.
This commit is contained in:
parent
a150062bfb
commit
b263eb5648
|
@ -35,7 +35,7 @@ pipeline {
|
||||||
BASEDIR = "${env.WORKSPACE}/component"
|
BASEDIR = "${env.WORKSPACE}/component"
|
||||||
YETUS_RELEASE = '0.6.0'
|
YETUS_RELEASE = '0.6.0'
|
||||||
PROJECT = 'hbase'
|
PROJECT = 'hbase'
|
||||||
PROJET_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'
|
||||||
// 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/.*'
|
||||||
|
@ -102,7 +102,7 @@ fi
|
||||||
dir ("${env.TOOLS}") {
|
dir ("${env.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.PROJET_PERSONALITY}"
|
curl -L -o personality.sh "${env.PROJECT_PERSONALITY}"
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
stash name: 'yetus', includes: "yetus-*/*,yetus-*/**/*,tools/personality.sh"
|
stash name: 'yetus', includes: "yetus-*/*,yetus-*/**/*,tools/personality.sh"
|
||||||
|
@ -203,15 +203,15 @@ curl -L -o personality.sh "${env.PROJET_PERSONALITY}"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage ('yetus jdk8 checks') {
|
stage ('yetus jdk8 hadoop2 checks') {
|
||||||
when {
|
when {
|
||||||
not {
|
not {
|
||||||
branch 'branch-1.1*'
|
branch 'branch-1.1*'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
environment {
|
environment {
|
||||||
TESTS = 'mvninstall,compile,javac,unit,findbugs,htmlout'
|
TESTS = 'mvninstall,compile,javac,unit,htmlout'
|
||||||
OUTPUT_DIR_RELATIVE = "output-jdk8"
|
OUTPUT_DIR_RELATIVE = "output-jdk8-hadoop2"
|
||||||
OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE}"
|
OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE}"
|
||||||
// This isn't strictly needed on branches that only support jdk8, but doesn't hurt
|
// This isn't strictly needed on branches that only support jdk8, but doesn't hurt
|
||||||
// and is needed on branches that do both jdk7 and jdk8
|
// and is needed on branches that do both jdk7 and jdk8
|
||||||
|
@ -253,7 +253,68 @@ curl -L -o personality.sh "${env.PROJET_PERSONALITY}"
|
||||||
// Has to be relative to WORKSPACE.
|
// Has to be relative to WORKSPACE.
|
||||||
reportDir : "${env.OUTPUT_DIR_RELATIVE}",
|
reportDir : "${env.OUTPUT_DIR_RELATIVE}",
|
||||||
reportFiles : 'console-report.html',
|
reportFiles : 'console-report.html',
|
||||||
reportName : 'JDK8 Nightly Build Report'
|
reportName : 'JDK8 Nightly Build Report (Hadoop2)'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage ('yetus jdk8 hadoop3 checks') {
|
||||||
|
when {
|
||||||
|
not {
|
||||||
|
branch 'branch-1*'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
environment {
|
||||||
|
// Failure in any stage fails the build and consecutive stages are not built.
|
||||||
|
// Findbugs is part of this last yetus stage to prevent findbugs precluding hadoop3
|
||||||
|
// tests.
|
||||||
|
TESTS = 'mvninstall,compile,javac,unit,findbugs,htmlout'
|
||||||
|
OUTPUT_DIR_RELATIVE = "output-jdk8-hadoop3"
|
||||||
|
OUTPUT_DIR = "${env.WORKSPACE}/${env.OUTPUT_DIR_RELATIVE}"
|
||||||
|
// This isn't strictly needed on branches that only support jdk8, but doesn't hurt
|
||||||
|
// and is needed on branches that do both jdk7 and jdk8
|
||||||
|
SET_JAVA_HOME = '/usr/lib/jvm/java-8-openjdk-amd64'
|
||||||
|
// Activates hadoop 3.0 profile in maven runs.
|
||||||
|
HADOOP_PROFILE = '3.0'
|
||||||
|
}
|
||||||
|
steps {
|
||||||
|
unstash 'yetus'
|
||||||
|
sh '''#!/usr/bin/env bash
|
||||||
|
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 "${env.BASEDIR}/dev-support/hbase_nightly_yetus.sh"
|
||||||
|
}
|
||||||
|
post {
|
||||||
|
always {
|
||||||
|
// Not sure how two junit test reports will work. Disabling this for now.
|
||||||
|
// junit testResults: "${env.OUTPUT_DIR_RELATIVE}/**/target/**/TEST-*.xml", allowEmptyResults: true
|
||||||
|
// zip surefire reports.
|
||||||
|
sh '''#!/bin/bash -e
|
||||||
|
if [ -d "${OUTPUT_DIR}/archiver" ]; then
|
||||||
|
count=$(find "${OUTPUT_DIR}/archiver" -type f | wc -l)
|
||||||
|
if [[ 0 -ne ${count} ]]; then
|
||||||
|
echo "zipping ${count} archived files"
|
||||||
|
zip -q -m -r "${OUTPUT_DIR}/test_logs.zip" "${OUTPUT_DIR}/archiver"
|
||||||
|
else
|
||||||
|
echo "No archived files, skipping compressing."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "No archiver directory, skipping compressing."
|
||||||
|
fi
|
||||||
|
'''
|
||||||
|
// Has to be relative to WORKSPACE.
|
||||||
|
archive "${env.OUTPUT_DIR_RELATIVE}/*"
|
||||||
|
archive "${env.OUTPUT_DIR_RELATIVE}/**/*"
|
||||||
|
publishHTML target: [
|
||||||
|
allowMissing : true,
|
||||||
|
keepAll : true,
|
||||||
|
alwaysLinkToLastBuild: true,
|
||||||
|
// Has to be relative to WORKSPACE.
|
||||||
|
reportDir : "${env.OUTPUT_DIR_RELATIVE}",
|
||||||
|
reportFiles : 'console-report.html',
|
||||||
|
reportName : 'JDK8 Nightly Build Report (Hadoop3)'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,6 +81,9 @@ function personality_parse_args
|
||||||
--include-tests-url=*)
|
--include-tests-url=*)
|
||||||
INCLUDE_TESTS_URL=${i#*=}
|
INCLUDE_TESTS_URL=${i#*=}
|
||||||
;;
|
;;
|
||||||
|
--hadoop-profile=*)
|
||||||
|
HADOOP_PROFILE=${i#*=}
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
@ -103,6 +106,10 @@ function personality_modules
|
||||||
|
|
||||||
extra="-DHBasePatchProcess"
|
extra="-DHBasePatchProcess"
|
||||||
|
|
||||||
|
if [[ -n "${HADOOP_PROFILE}" ]]; then
|
||||||
|
extra="${extra} -Dhadoop.profile=${HADOOP_PROFILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
# BUILDMODE value is 'full' when there is no patch to be tested, and we are running checks on
|
# BUILDMODE value is 'full' when there is no patch to be tested, and we are running checks on
|
||||||
# full source code instead. In this case, do full compiles, tests, etc instead of per
|
# full source code instead. In this case, do full compiles, tests, etc instead of per
|
||||||
# module.
|
# module.
|
||||||
|
@ -115,6 +122,7 @@ function personality_modules
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${testtype} == mvninstall ]]; then
|
if [[ ${testtype} == mvninstall ]]; then
|
||||||
|
# shellcheck disable=SC2086
|
||||||
personality_enqueue_module . ${extra}
|
personality_enqueue_module . ${extra}
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -76,6 +76,11 @@ if [[ -n "${INCLUDE_TESTS_URL}" && "${BRANCH_NAME}" == "master" ]]; then
|
||||||
YETUS_ARGS=("--include-tests-url=${INCLUDE_TESTS_URL}" "${YETUS_ARGS[@]}")
|
YETUS_ARGS=("--include-tests-url=${INCLUDE_TESTS_URL}" "${YETUS_ARGS[@]}")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# For testing with specific hadoop version. Activates corresponding profile in maven runs.
|
||||||
|
if [[ -n "${HADOOP_PROFILE}" ]]; then
|
||||||
|
YETUS_ARGS=("--hadoop-profile=${HADOOP_PROFILE}" "${YETUS_ARGS[@]}")
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ true == "${DEBUG}" ]]; then
|
if [[ true == "${DEBUG}" ]]; then
|
||||||
YETUS_ARGS=("--debug" "${YETUS_ARGS[@]}")
|
YETUS_ARGS=("--debug" "${YETUS_ARGS[@]}")
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue