You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rya.apache.org by Amila Wijayarathna <am...@gmail.com> on 2016/06/11 15:35:47 UTC
Shell script changes for Rya
Hi all,
I'm trying integrate yetus test patch with jenkins to add pre-commit build
for Rya. I configured jenkins for pre-commit build and went through
pre-commit accumulo build shell script [1]. But I'm not sure what are
changes that need to do in the script for Rya. As in the script there is no
much thing about Accumulo so I made some changes but it seems they are not
correct or incomplete.
Any idea about this is appreciated.
Thank you!
#!/bin/bash -e
if [[ "true" = "${DEBUG}" ]]; then
set -x
fi
##To set jenkins Environment Variables:
export TOOLS_HOME=/home/jenkins/tools
export JAVA_HOME=${TOOLS_HOME}/java/jdk1.7.0_79
export FINDBUGS_HOME=${TOOLS_HOME}/findbugs/latest
export CLOVER_HOME=${TOOLS_HOME}/clover/latest
export MAVEN_HOME=${TOOLS_HOME}/maven/latest
export PATH=$PATH:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:
YETUS_RELEASE=0.3.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)
# Temporary hack to fix the nodes I messed up
if [ -d "${TEST_FRAMEWORK}" ]; then
rm -rf "${TEST_FRAMEWORK}"
fi
### Download Yetus
if [[ "true" != "${USE_YETUS_PRERELEASE}" ]]; then
if [ ! -d "${TEST_FRAMEWORK}/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}/yetus-${YETUS_RELEASE}-bin.tar.gz
"
curl -L --fail -O "
https://dist.apache.org/repos/dist/release/yetus/${YETUS_RELEASE}/yetus-${YETUS_RELEASE}-bin.tar.gz.asc
"
gpg --homedir "${TEST_FRAMEWORK}/.gpg" --verify
"yetus-${YETUS_RELEASE}-bin.tar.gz.asc"
tar xzpf "yetus-${YETUS_RELEASE}-bin.tar.gz"
fi
TESTPATCHBIN=${TEST_FRAMEWORK}/yetus-${YETUS_RELEASE}/bin/test-patch
TESTPATCHLIB=${TEST_FRAMEWORK}/yetus-${YETUS_RELEASE}/lib/precommit
else
prerelease_dirs=(${TEST_FRAMEWORK}/apache-yetus-*)
if [ ! -d "${prerelease_dirs[0]}" ]; then
mkdir -p "${TEST_FRAMEWORK}"
cd "${TEST_FRAMEWORK}"
## from github
curl -L --fail https://api.github.com/repos/apache/yetus/tarball/HEAD >
yetus.tar.gz
tar xvpf yetus.tar.gz
prerelease_dirs=(${TEST_FRAMEWORK}/apache-yetus-*)
fi
TESTPATCHBIN=${prerelease_dirs[0]}/precommit/test-patch.sh
TESTPATCHLIB=${prerelease_dirs[0]}/precommit
fi
if [[ "true" = "${DEBUG}" ]]; then
# DEBUG print the test framework
ls -l "${TESTPATCHBIN}"
ls -la "${TESTPATCHLIB}/test-patch.d/"
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."
echo "${WORKSPACE}"
ls -al ${WORKSPACE}
echo "TEST_FRAMEWORK: ${TEST_FRAMEWORK}"
ls -al ${TEST_FRAMEWORK}/apache-yetus-*/precommit/
ls -al ${TEST_FRAMEWORK}/apache-yetus-*/precommit/test-patch.sh
echo "TESTPATCHBIN: ${TESTPATCHBIN}"
ls -al "${TESTPATCHBIN}"
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 \
# --multijdkdirs="${TOOLS_HOME}/java/jdk1.8.0" \
# docker-mode: (openjdk 7 added for free)
# --findbugs-home=/opt/findbugs \
# --docker \
# --multijdkdirs="/usr/lib/jvm/java-8-oracle" \
#if [[ "true" = "${RUN_IN_DOCKER}" ]]; then
# YETUS_ARGS=(--docker --multijdkdirs="/usr/lib/jvm/java-8-oracle"
--findbugs-home=/opt/findbugs ${YETUS_ARGS[@]})
# if [ -r "${COMPONENT}/dev-support/docker/Dockerfile" ]; then
# YETUS_ARGS=(--dockerfile="${COMPONENT}/dev-support/docker/Dockerfile"
${YETUS_ARGS[@]})
# fi
#else
YETUS_ARGS=(--findbugs-home=/home/jenkins/tools/findbugs/latest
--multijdkdirs="${TOOLS_HOME}/java/jdk1.8.0" ${YETUS_ARGS[@]})
#fi
/bin/bash "${TESTPATCHBIN}" \
"${YETUS_ARGS[@]}" \
--patch-dir="${PATCHPROCESS}" \
--basedir="${COMPONENT}" \
--findbugs-strict-precheck \
--mvn-custom-repos \
--jira-user=hadoopqa \
--jira-password="${JIRA_PASSWORD}" \
"ACCUMULO-${ISSUE_NUM}"
find "${COMPONENT}" -name target -exec chmod -R u+w {} \;
--
*Amila Wijayarathna*
Undergraduate,
Faculty of Information Technology,
University of Moratuwa,
Sri Lanka.
Re: Shell script changes for Rya
Posted by Amila Wijayarathna <am...@gmail.com>.
Hi Aaron,
Did you have time to look about the script?
Thank you in advance
On Mon, Jun 13, 2016 at 3:53 PM, Aaron D. Mihalik <aa...@gmail.com>
wrote:
> Thanks Amila. I'm sorry for the delay with assistance. I'll set aside some
> time this afternoon to look at this and give you feedback.
>
> --Aaron
>
> On Sat, Jun 11, 2016 at 11:35 AM Amila Wijayarathna <
> amwijayarathna@gmail.com> wrote:
>
>> Hi all,
>> I'm trying integrate yetus test patch with jenkins to add pre-commit
>> build for Rya. I configured jenkins for pre-commit build and went through
>> pre-commit accumulo build shell script [1]. But I'm not sure what are
>> changes that need to do in the script for Rya. As in the script there is no
>> much thing about Accumulo so I made some changes but it seems they are not
>> correct or incomplete.
>> Any idea about this is appreciated.
>>
>> Thank you!
>>
>>
>>
>> #!/bin/bash -e
>>
>> if [[ "true" = "${DEBUG}" ]]; then
>> set -x
>> fi
>>
>> ##To set jenkins Environment Variables:
>> export TOOLS_HOME=/home/jenkins/tools
>> export JAVA_HOME=${TOOLS_HOME}/java/jdk1.7.0_79
>> export FINDBUGS_HOME=${TOOLS_HOME}/findbugs/latest
>> export CLOVER_HOME=${TOOLS_HOME}/clover/latest
>> export MAVEN_HOME=${TOOLS_HOME}/maven/latest
>>
>> export PATH=$PATH:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:
>>
>> YETUS_RELEASE=0.3.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)
>>
>> # Temporary hack to fix the nodes I messed up
>> if [ -d "${TEST_FRAMEWORK}" ]; then
>> rm -rf "${TEST_FRAMEWORK}"
>> fi
>>
>> ### Download Yetus
>> if [[ "true" != "${USE_YETUS_PRERELEASE}" ]]; then
>> if [ ! -d "${TEST_FRAMEWORK}/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}/yetus-${YETUS_RELEASE}-bin.tar.gz
>> "
>> curl -L --fail -O "
>> https://dist.apache.org/repos/dist/release/yetus/${YETUS_RELEASE}/yetus-${YETUS_RELEASE}-bin.tar.gz.asc
>> "
>> gpg --homedir "${TEST_FRAMEWORK}/.gpg" --verify
>> "yetus-${YETUS_RELEASE}-bin.tar.gz.asc"
>> tar xzpf "yetus-${YETUS_RELEASE}-bin.tar.gz"
>> fi
>> TESTPATCHBIN=${TEST_FRAMEWORK}/yetus-${YETUS_RELEASE}/bin/test-patch
>> TESTPATCHLIB=${TEST_FRAMEWORK}/yetus-${YETUS_RELEASE}/lib/precommit
>> else
>> prerelease_dirs=(${TEST_FRAMEWORK}/apache-yetus-*)
>> if [ ! -d "${prerelease_dirs[0]}" ]; then
>> mkdir -p "${TEST_FRAMEWORK}"
>> cd "${TEST_FRAMEWORK}"
>> ## from github
>> curl -L --fail https://api.github.com/repos/apache/yetus/tarball/HEAD
>> > yetus.tar.gz
>> tar xvpf yetus.tar.gz
>> prerelease_dirs=(${TEST_FRAMEWORK}/apache-yetus-*)
>> fi
>> TESTPATCHBIN=${prerelease_dirs[0]}/precommit/test-patch.sh
>> TESTPATCHLIB=${prerelease_dirs[0]}/precommit
>> fi
>>
>>
>> if [[ "true" = "${DEBUG}" ]]; then
>> # DEBUG print the test framework
>> ls -l "${TESTPATCHBIN}"
>> ls -la "${TESTPATCHLIB}/test-patch.d/"
>> 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."
>> echo "${WORKSPACE}"
>> ls -al ${WORKSPACE}
>> echo "TEST_FRAMEWORK: ${TEST_FRAMEWORK}"
>> ls -al ${TEST_FRAMEWORK}/apache-yetus-*/precommit/
>> ls -al ${TEST_FRAMEWORK}/apache-yetus-*/precommit/test-patch.sh
>> echo "TESTPATCHBIN: ${TESTPATCHBIN}"
>> ls -al "${TESTPATCHBIN}"
>>
>> 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 \
>> # --multijdkdirs="${TOOLS_HOME}/java/jdk1.8.0" \
>>
>> # docker-mode: (openjdk 7 added for free)
>> # --findbugs-home=/opt/findbugs \
>> # --docker \
>> # --multijdkdirs="/usr/lib/jvm/java-8-oracle" \
>>
>>
>>
>> #if [[ "true" = "${RUN_IN_DOCKER}" ]]; then
>> # YETUS_ARGS=(--docker --multijdkdirs="/usr/lib/jvm/java-8-oracle"
>> --findbugs-home=/opt/findbugs ${YETUS_ARGS[@]})
>> # if [ -r "${COMPONENT}/dev-support/docker/Dockerfile" ]; then
>> #
>> YETUS_ARGS=(--dockerfile="${COMPONENT}/dev-support/docker/Dockerfile"
>> ${YETUS_ARGS[@]})
>> # fi
>> #else
>> YETUS_ARGS=(--findbugs-home=/home/jenkins/tools/findbugs/latest
>> --multijdkdirs="${TOOLS_HOME}/java/jdk1.8.0" ${YETUS_ARGS[@]})
>> #fi
>>
>>
>> /bin/bash "${TESTPATCHBIN}" \
>> "${YETUS_ARGS[@]}" \
>> --patch-dir="${PATCHPROCESS}" \
>> --basedir="${COMPONENT}" \
>> --findbugs-strict-precheck \
>> --mvn-custom-repos \
>> --jira-user=hadoopqa \
>> --jira-password="${JIRA_PASSWORD}" \
>> "ACCUMULO-${ISSUE_NUM}"
>>
>> find "${COMPONENT}" -name target -exec chmod -R u+w {} \;
>>
>>
>> --
>>
>> *Amila Wijayarathna*
>> Undergraduate,
>> Faculty of Information Technology,
>> University of Moratuwa,
>> Sri Lanka.
>>
>
--
*Amila Wijayarathna*
Undergraduate,
Faculty of Information Technology,
University of Moratuwa,
Sri Lanka.
Re: Shell script changes for Rya
Posted by "Aaron D. Mihalik" <aa...@gmail.com>.
Thanks Amila. I'm sorry for the delay with assistance. I'll set aside some
time this afternoon to look at this and give you feedback.
--Aaron
On Sat, Jun 11, 2016 at 11:35 AM Amila Wijayarathna <
amwijayarathna@gmail.com> wrote:
> Hi all,
> I'm trying integrate yetus test patch with jenkins to add pre-commit
> build for Rya. I configured jenkins for pre-commit build and went through
> pre-commit accumulo build shell script [1]. But I'm not sure what are
> changes that need to do in the script for Rya. As in the script there is no
> much thing about Accumulo so I made some changes but it seems they are not
> correct or incomplete.
> Any idea about this is appreciated.
>
> Thank you!
>
>
>
> #!/bin/bash -e
>
> if [[ "true" = "${DEBUG}" ]]; then
> set -x
> fi
>
> ##To set jenkins Environment Variables:
> export TOOLS_HOME=/home/jenkins/tools
> export JAVA_HOME=${TOOLS_HOME}/java/jdk1.7.0_79
> export FINDBUGS_HOME=${TOOLS_HOME}/findbugs/latest
> export CLOVER_HOME=${TOOLS_HOME}/clover/latest
> export MAVEN_HOME=${TOOLS_HOME}/maven/latest
>
> export PATH=$PATH:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:
>
> YETUS_RELEASE=0.3.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)
>
> # Temporary hack to fix the nodes I messed up
> if [ -d "${TEST_FRAMEWORK}" ]; then
> rm -rf "${TEST_FRAMEWORK}"
> fi
>
> ### Download Yetus
> if [[ "true" != "${USE_YETUS_PRERELEASE}" ]]; then
> if [ ! -d "${TEST_FRAMEWORK}/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}/yetus-${YETUS_RELEASE}-bin.tar.gz
> "
> curl -L --fail -O "
> https://dist.apache.org/repos/dist/release/yetus/${YETUS_RELEASE}/yetus-${YETUS_RELEASE}-bin.tar.gz.asc
> "
> gpg --homedir "${TEST_FRAMEWORK}/.gpg" --verify
> "yetus-${YETUS_RELEASE}-bin.tar.gz.asc"
> tar xzpf "yetus-${YETUS_RELEASE}-bin.tar.gz"
> fi
> TESTPATCHBIN=${TEST_FRAMEWORK}/yetus-${YETUS_RELEASE}/bin/test-patch
> TESTPATCHLIB=${TEST_FRAMEWORK}/yetus-${YETUS_RELEASE}/lib/precommit
> else
> prerelease_dirs=(${TEST_FRAMEWORK}/apache-yetus-*)
> if [ ! -d "${prerelease_dirs[0]}" ]; then
> mkdir -p "${TEST_FRAMEWORK}"
> cd "${TEST_FRAMEWORK}"
> ## from github
> curl -L --fail https://api.github.com/repos/apache/yetus/tarball/HEAD
> > yetus.tar.gz
> tar xvpf yetus.tar.gz
> prerelease_dirs=(${TEST_FRAMEWORK}/apache-yetus-*)
> fi
> TESTPATCHBIN=${prerelease_dirs[0]}/precommit/test-patch.sh
> TESTPATCHLIB=${prerelease_dirs[0]}/precommit
> fi
>
>
> if [[ "true" = "${DEBUG}" ]]; then
> # DEBUG print the test framework
> ls -l "${TESTPATCHBIN}"
> ls -la "${TESTPATCHLIB}/test-patch.d/"
> 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."
> echo "${WORKSPACE}"
> ls -al ${WORKSPACE}
> echo "TEST_FRAMEWORK: ${TEST_FRAMEWORK}"
> ls -al ${TEST_FRAMEWORK}/apache-yetus-*/precommit/
> ls -al ${TEST_FRAMEWORK}/apache-yetus-*/precommit/test-patch.sh
> echo "TESTPATCHBIN: ${TESTPATCHBIN}"
> ls -al "${TESTPATCHBIN}"
>
> 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 \
> # --multijdkdirs="${TOOLS_HOME}/java/jdk1.8.0" \
>
> # docker-mode: (openjdk 7 added for free)
> # --findbugs-home=/opt/findbugs \
> # --docker \
> # --multijdkdirs="/usr/lib/jvm/java-8-oracle" \
>
>
>
> #if [[ "true" = "${RUN_IN_DOCKER}" ]]; then
> # YETUS_ARGS=(--docker --multijdkdirs="/usr/lib/jvm/java-8-oracle"
> --findbugs-home=/opt/findbugs ${YETUS_ARGS[@]})
> # if [ -r "${COMPONENT}/dev-support/docker/Dockerfile" ]; then
> # YETUS_ARGS=(--dockerfile="${COMPONENT}/dev-support/docker/Dockerfile"
> ${YETUS_ARGS[@]})
> # fi
> #else
> YETUS_ARGS=(--findbugs-home=/home/jenkins/tools/findbugs/latest
> --multijdkdirs="${TOOLS_HOME}/java/jdk1.8.0" ${YETUS_ARGS[@]})
> #fi
>
>
> /bin/bash "${TESTPATCHBIN}" \
> "${YETUS_ARGS[@]}" \
> --patch-dir="${PATCHPROCESS}" \
> --basedir="${COMPONENT}" \
> --findbugs-strict-precheck \
> --mvn-custom-repos \
> --jira-user=hadoopqa \
> --jira-password="${JIRA_PASSWORD}" \
> "ACCUMULO-${ISSUE_NUM}"
>
> find "${COMPONENT}" -name target -exec chmod -R u+w {} \;
>
>
> --
>
> *Amila Wijayarathna*
> Undergraduate,
> Faculty of Information Technology,
> University of Moratuwa,
> Sri Lanka.
>
Re: Shell script changes for Rya
Posted by Josh Elser <jo...@gmail.com>.
Did you miss the "ACCUMULO" at the bottom of the script? :)
Also, did you create a Yetus personality for Rya?[1]
Have you tried running something like the following locally to verify
that it works with the Yetus 0.3.0 release?
e.g. `test-patch.sh --findbugs-strict-precheck --mvn-custom-repos
RYA-XXX` (where RYA-XXX is the ID for a RYA JIRA issue which has a patch
attached and is in the Patch Available state)
[1]
http://yetus.apache.org/documentation/in-progress/precommit-advanced/#personalities
Amila Wijayarathna wrote:
> Hi all,
> I'm trying integrate yetus test patch with jenkins to add pre-commit build
> for Rya. I configured jenkins for pre-commit build and went through
> pre-commit accumulo build shell script [1]. But I'm not sure what are
> changes that need to do in the script for Rya. As in the script there is no
> much thing about Accumulo so I made some changes but it seems they are not
> correct or incomplete.
> Any idea about this is appreciated.
>
> Thank you!
>
>
>
> #!/bin/bash -e
>
> if [[ "true" = "${DEBUG}" ]]; then
> set -x
> fi
>
> ##To set jenkins Environment Variables:
> export TOOLS_HOME=/home/jenkins/tools
> export JAVA_HOME=${TOOLS_HOME}/java/jdk1.7.0_79
> export FINDBUGS_HOME=${TOOLS_HOME}/findbugs/latest
> export CLOVER_HOME=${TOOLS_HOME}/clover/latest
> export MAVEN_HOME=${TOOLS_HOME}/maven/latest
>
> export PATH=$PATH:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:
>
> YETUS_RELEASE=0.3.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)
>
> # Temporary hack to fix the nodes I messed up
> if [ -d "${TEST_FRAMEWORK}" ]; then
> rm -rf "${TEST_FRAMEWORK}"
> fi
>
> ### Download Yetus
> if [[ "true" != "${USE_YETUS_PRERELEASE}" ]]; then
> if [ ! -d "${TEST_FRAMEWORK}/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}/yetus-${YETUS_RELEASE}-bin.tar.gz
> "
> curl -L --fail -O "
> https://dist.apache.org/repos/dist/release/yetus/${YETUS_RELEASE}/yetus-${YETUS_RELEASE}-bin.tar.gz.asc
> "
> gpg --homedir "${TEST_FRAMEWORK}/.gpg" --verify
> "yetus-${YETUS_RELEASE}-bin.tar.gz.asc"
> tar xzpf "yetus-${YETUS_RELEASE}-bin.tar.gz"
> fi
> TESTPATCHBIN=${TEST_FRAMEWORK}/yetus-${YETUS_RELEASE}/bin/test-patch
> TESTPATCHLIB=${TEST_FRAMEWORK}/yetus-${YETUS_RELEASE}/lib/precommit
> else
> prerelease_dirs=(${TEST_FRAMEWORK}/apache-yetus-*)
> if [ ! -d "${prerelease_dirs[0]}" ]; then
> mkdir -p "${TEST_FRAMEWORK}"
> cd "${TEST_FRAMEWORK}"
> ## from github
> curl -L --fail https://api.github.com/repos/apache/yetus/tarball/HEAD>
> yetus.tar.gz
> tar xvpf yetus.tar.gz
> prerelease_dirs=(${TEST_FRAMEWORK}/apache-yetus-*)
> fi
> TESTPATCHBIN=${prerelease_dirs[0]}/precommit/test-patch.sh
> TESTPATCHLIB=${prerelease_dirs[0]}/precommit
> fi
>
>
> if [[ "true" = "${DEBUG}" ]]; then
> # DEBUG print the test framework
> ls -l "${TESTPATCHBIN}"
> ls -la "${TESTPATCHLIB}/test-patch.d/"
> 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."
> echo "${WORKSPACE}"
> ls -al ${WORKSPACE}
> echo "TEST_FRAMEWORK: ${TEST_FRAMEWORK}"
> ls -al ${TEST_FRAMEWORK}/apache-yetus-*/precommit/
> ls -al ${TEST_FRAMEWORK}/apache-yetus-*/precommit/test-patch.sh
> echo "TESTPATCHBIN: ${TESTPATCHBIN}"
> ls -al "${TESTPATCHBIN}"
>
> 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 \
> # --multijdkdirs="${TOOLS_HOME}/java/jdk1.8.0" \
>
> # docker-mode: (openjdk 7 added for free)
> # --findbugs-home=/opt/findbugs \
> # --docker \
> # --multijdkdirs="/usr/lib/jvm/java-8-oracle" \
>
>
>
> #if [[ "true" = "${RUN_IN_DOCKER}" ]]; then
> # YETUS_ARGS=(--docker --multijdkdirs="/usr/lib/jvm/java-8-oracle"
> --findbugs-home=/opt/findbugs ${YETUS_ARGS[@]})
> # if [ -r "${COMPONENT}/dev-support/docker/Dockerfile" ]; then
> # YETUS_ARGS=(--dockerfile="${COMPONENT}/dev-support/docker/Dockerfile"
> ${YETUS_ARGS[@]})
> # fi
> #else
> YETUS_ARGS=(--findbugs-home=/home/jenkins/tools/findbugs/latest
> --multijdkdirs="${TOOLS_HOME}/java/jdk1.8.0" ${YETUS_ARGS[@]})
> #fi
>
>
> /bin/bash "${TESTPATCHBIN}" \
> "${YETUS_ARGS[@]}" \
> --patch-dir="${PATCHPROCESS}" \
> --basedir="${COMPONENT}" \
> --findbugs-strict-precheck \
> --mvn-custom-repos \
> --jira-user=hadoopqa \
> --jira-password="${JIRA_PASSWORD}" \
> "ACCUMULO-${ISSUE_NUM}"
>
> find "${COMPONENT}" -name target -exec chmod -R u+w {} \;
>