Created
May 10, 2019 16:07
-
-
Save busbey/b5c3cf28530681ec1ebe7b325e5073bd to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -e | |
if [[ "true" = "${DEBUG}" ]]; then | |
set -x | |
printenv | |
fi | |
##To set jenkins Environment Variables: | |
export TOOLS_HOME=/home/jenkins/tools | |
export FINDBUGS_HOME=${TOOLS_HOME}/findbugs/latest | |
export CLOVER_HOME=${TOOLS_HOME}/clover/latest | |
export MAVEN_HOME=/home/jenkins/tools/maven/apache-maven-3.5.0 | |
export PATH=$PATH:${MAVEN_HOME}/bin: | |
YETUS_RELEASE=0.9.0 | |
COMPONENT=${WORKSPACE}/component | |
TEST_FRAMEWORK=${WORKSPACE}/test_framework | |
PATCHPROCESS=${WORKSPACE}/patchprocess | |
if [[ -d ${PATCHPROCESS} ]]; then | |
echo "[WARN] patch process already existed '${PATCHPROCESS}'" | |
rm -rf "${PATCHPROCESS}" | |
fi | |
mkdir -p "${PATCHPROCESS}" | |
# First time we call this it's from jenkins, so break it on spaces | |
YETUS_ARGS=(${YETUS_ARGS} --jenkins) | |
### Download Yetus | |
if [ ! -d "${TEST_FRAMEWORK}/apache-yetus-${YETUS_RELEASE}" ]; then | |
mkdir -p "${TEST_FRAMEWORK}" | |
cd "${TEST_FRAMEWORK}" | |
# clear out any cached 'use a prerelease' versions | |
rm -rf apache-yetus-* | |
mkdir -p "${TEST_FRAMEWORK}/.gpg" | |
chmod -R 700 "${TEST_FRAMEWORK}/.gpg" | |
curl -L --fail -o "${TEST_FRAMEWORK}/KEYS_YETUS" https://dist.apache.org/repos/dist/release/yetus/KEYS | |
gpg --homedir "${TEST_FRAMEWORK}/.gpg" --import "${TEST_FRAMEWORK}/KEYS_YETUS" | |
## Release | |
curl -L --fail -O "https://dist.apache.org/repos/dist/release/yetus/${YETUS_RELEASE}/apache-yetus-${YETUS_RELEASE}-bin.tar.gz" | |
curl -L --fail -O "https://dist.apache.org/repos/dist/release/yetus/${YETUS_RELEASE}/apache-yetus-${YETUS_RELEASE}-bin.tar.gz.asc" | |
gpg --homedir "${TEST_FRAMEWORK}/.gpg" --verify "apache-yetus-${YETUS_RELEASE}-bin.tar.gz.asc" | |
tar xzpf "apache-yetus-${YETUS_RELEASE}-bin.tar.gz" | |
fi | |
TESTPATCHBIN=${TEST_FRAMEWORK}/apache-yetus-${YETUS_RELEASE}/bin/test-patch | |
TESTPATCHLIB=${TEST_FRAMEWORK}/apache-yetus-${YETUS_RELEASE}/lib/precommit | |
if [[ "true" = "${DEBUG}" ]]; then | |
# DEBUG print the test framework | |
ls -l "${TESTPATCHBIN}" | |
ls -la "${TESTPATCHLIB}/test-patch.d/" | |
# DEBUG print the local customization | |
if [ -d "${COMPONENT}/dev-support/test-patch.d" ]; then | |
ls -la "${COMPONENT}/dev-support/test-patch.d/" | |
fi | |
YETUS_ARGS=(--debug ${YETUS_ARGS[@]}) | |
fi | |
if [ ! -x "${TESTPATCHBIN}" ] && [ -n "${TEST_FRAMEWORK}" ] && [ -d "${TEST_FRAMEWORK}" ]; then | |
echo "Something is amiss with the test framework; removing it. please re-run." | |
rm -rf "${TEST_FRAMEWORK}" | |
exit 1 | |
fi | |
cd "${WORKSPACE}" | |
# | |
# Yetus *always* builds with JAVA_HOME, so no need to list it. | |
# | |
# non-docker-mode JDK: | |
# --findbugs-home=/home/jenkins/tools/findbugs/latest \ | |
# docker-mode: (openjdk 7 added for free) | |
# --findbugs-home=/usr \ | |
# --docker \ | |
# --multijdkdirs="/usr/lib/jvm/java-8-openjdk-amd64" \ | |
if [[ "true" = "${RUN_IN_DOCKER}" ]]; then | |
YETUS_ARGS=( --docker --multijdkdirs="/usr/lib/jvm/java-8-openjdk-amd64" --findbugs-home=/usr ${YETUS_ARGS[@]}) | |
if [ -r "${COMPONENT}/dev-support/Dockerfile" ]; then | |
YETUS_ARGS=(--dockerfile="${COMPONENT}/dev-support/Dockerfile" ${YETUS_ARGS[@]}) | |
fi | |
else | |
YETUS_ARGS=(--findbugs-home=/home/jenkins/tools/findbugs/latest ${YETUS_ARGS[@]}) | |
fi | |
if [ -d "${COMPONENT}/dev-support/test-patch.d" ]; then | |
YETUS_ARGS=("--user-plugins=${COMPONENT}/dev-support/test-patch.d" ${YETUS_ARGS[@]}) | |
fi | |
if [ -r "${COMPONENT}/dev-support/hbase-personality.sh" ] ; then | |
YETUS_ARGS=("--personality=${COMPONENT}/dev-support/hbase-personality.sh" ${YETUS_ARGS[@]}) | |
fi | |
YETUS_ARGS=("--html-report-file=${PATCHPROCESS}/console-report.html" "${YETUS_ARGS[@]}") | |
/bin/bash "${TESTPATCHBIN}" \ | |
"${YETUS_ARGS[@]}" \ | |
--patch-dir="${PATCHPROCESS}" \ | |
--basedir="${COMPONENT}" \ | |
--mvn-custom-repos \ | |
--github-repo=apache/hbase-connectors \ | |
--plugins='all' \ | |
GH:"${ghprbPullId}" | |
find "${COMPONENT}" -name target -exec chmod -R u+w {} \; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -e | |
if [[ "true" = "${DEBUG}" ]]; then | |
set -x | |
printenv | |
fi | |
##To set jenkins Environment Variables: | |
export TOOLS_HOME=/home/jenkins/tools | |
export FINDBUGS_HOME=${TOOLS_HOME}/findbugs/latest | |
export CLOVER_HOME=${TOOLS_HOME}/clover/latest | |
export MAVEN_HOME=/home/jenkins/tools/maven/apache-maven-3.5.0 | |
export PATH=$PATH:${MAVEN_HOME}/bin: | |
YETUS_RELEASE=0.9.0 | |
COMPONENT=${WORKSPACE}/component | |
TEST_FRAMEWORK=${WORKSPACE}/test_framework | |
PATCHPROCESS=${WORKSPACE}/patchprocess | |
if [[ -d ${PATCHPROCESS} ]]; then | |
echo "[WARN] patch process already existed '${PATCHPROCESS}'" | |
rm -rf "${PATCHPROCESS}" | |
fi | |
mkdir -p "${PATCHPROCESS}" | |
# First time we call this it's from jenkins, so break it on spaces | |
YETUS_ARGS=(${YETUS_ARGS} --jenkins) | |
### Download Yetus | |
if [ ! -d "${TEST_FRAMEWORK}/apache-yetus-${YETUS_RELEASE}" ]; then | |
mkdir -p "${TEST_FRAMEWORK}" | |
cd "${TEST_FRAMEWORK}" | |
# clear out any cached 'use a prerelease' versions | |
rm -rf apache-yetus-* | |
mkdir -p "${TEST_FRAMEWORK}/.gpg" | |
chmod -R 700 "${TEST_FRAMEWORK}/.gpg" | |
curl -L --fail -o "${TEST_FRAMEWORK}/KEYS_YETUS" https://dist.apache.org/repos/dist/release/yetus/KEYS | |
gpg --homedir "${TEST_FRAMEWORK}/.gpg" --import "${TEST_FRAMEWORK}/KEYS_YETUS" | |
## Release | |
curl -L --fail -O "https://dist.apache.org/repos/dist/release/yetus/${YETUS_RELEASE}/apache-yetus-${YETUS_RELEASE}-bin.tar.gz" | |
curl -L --fail -O "https://dist.apache.org/repos/dist/release/yetus/${YETUS_RELEASE}/apache-yetus-${YETUS_RELEASE}-bin.tar.gz.asc" | |
gpg --homedir "${TEST_FRAMEWORK}/.gpg" --verify "apache-yetus-${YETUS_RELEASE}-bin.tar.gz.asc" | |
tar xzpf "apache-yetus-${YETUS_RELEASE}-bin.tar.gz" | |
fi | |
TESTPATCHBIN=${TEST_FRAMEWORK}/apache-yetus-${YETUS_RELEASE}/bin/test-patch | |
TESTPATCHLIB=${TEST_FRAMEWORK}/apache-yetus-${YETUS_RELEASE}/lib/precommit | |
if [[ "true" = "${DEBUG}" ]]; then | |
# DEBUG print the test framework | |
ls -l "${TESTPATCHBIN}" | |
ls -la "${TESTPATCHLIB}/test-patch.d/" | |
# DEBUG print the local customization | |
if [ -d "${COMPONENT}/dev-support/test-patch.d" ]; then | |
ls -la "${COMPONENT}/dev-support/test-patch.d/" | |
fi | |
YETUS_ARGS=(--debug ${YETUS_ARGS[@]}) | |
fi | |
if [ ! -x "${TESTPATCHBIN}" ] && [ -n "${TEST_FRAMEWORK}" ] && [ -d "${TEST_FRAMEWORK}" ]; then | |
echo "Something is amiss with the test framework; removing it. please re-run." | |
rm -rf "${TEST_FRAMEWORK}" | |
exit 1 | |
fi | |
cd "${WORKSPACE}" | |
# | |
# Yetus *always* builds with JAVA_HOME, so no need to list it. | |
# | |
# non-docker-mode JDK: | |
# --findbugs-home=/home/jenkins/tools/findbugs/latest \ | |
# docker-mode: (openjdk 7 added for free) | |
# --findbugs-home=/usr \ | |
# --docker \ | |
# --multijdkdirs="/usr/lib/jvm/java-8-openjdk-amd64" \ | |
if [[ "true" = "${RUN_IN_DOCKER}" ]]; then | |
YETUS_ARGS=( --docker --multijdkdirs="/usr/lib/jvm/java-8-openjdk-amd64" --findbugs-home=/usr ${YETUS_ARGS[@]}) | |
if [ -r "${COMPONENT}/dev-support/Dockerfile" ]; then | |
YETUS_ARGS=(--dockerfile="${COMPONENT}/dev-support/Dockerfile" ${YETUS_ARGS[@]}) | |
fi | |
else | |
YETUS_ARGS=(--findbugs-home=/home/jenkins/tools/findbugs/latest ${YETUS_ARGS[@]}) | |
fi | |
if [ -d "${COMPONENT}/dev-support/test-patch.d" ]; then | |
YETUS_ARGS=("--user-plugins=${COMPONENT}/dev-support/test-patch.d" ${YETUS_ARGS[@]}) | |
fi | |
if [ -r "${COMPONENT}/dev-support/hbase-personality.sh" ] ; then | |
YETUS_ARGS=("--personality=${COMPONENT}/dev-support/hbase-personality.sh" ${YETUS_ARGS[@]}) | |
fi | |
YETUS_ARGS=("--html-report-file=${PATCHPROCESS}/console-report.html" "${YETUS_ARGS[@]}") | |
/bin/bash "${TESTPATCHBIN}" \ | |
"${YETUS_ARGS[@]}" \ | |
--patch-dir="${PATCHPROCESS}" \ | |
--basedir="${COMPONENT}" \ | |
--mvn-custom-repos \ | |
--github-repo=apache/hbase-operator-tools \ | |
--plugins='all' \ | |
GH:"${ghprbPullId}" | |
find "${COMPONENT}" -name target -exec chmod -R u+w {} \; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment