HADOOP-11917. test-patch.sh should work with ${BASEDIR}/patchprocess setups (aw)
This commit is contained in:
parent
24d3a2d4fd
commit
d33419ae01
1
.gitignore
vendored
1
.gitignore
vendored
@ -23,3 +23,4 @@ hadoop-tools/hadoop-openstack/src/test/resources/contract-test-options.xml
|
||||
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/tla/yarnregistry.toolbox
|
||||
yarnregistry.pdf
|
||||
hadoop-tools/hadoop-aws/src/test/resources/contract-test-options.xml
|
||||
patchprocess/
|
||||
|
@ -535,6 +535,26 @@ function echo_and_redirect
|
||||
"${@}" > "${logfile}" 2>&1
|
||||
}
|
||||
|
||||
## @description is PATCH_DIR relative to BASEDIR?
|
||||
## @audience public
|
||||
## @stability stable
|
||||
## @replaceable yes
|
||||
## @returns 1 - no, PATCH_DIR
|
||||
## @returns 0 - yes, PATCH_DIR - BASEDIR
|
||||
function relative_patchdir
|
||||
{
|
||||
local p=${PATCH_DIR#${BASEDIR}}
|
||||
|
||||
if [[ ${#p} -eq ${#PATCH_DIR} ]]; then
|
||||
echo ${p}
|
||||
return 1
|
||||
fi
|
||||
p=${p#/}
|
||||
echo ${p}
|
||||
return 0
|
||||
}
|
||||
|
||||
|
||||
## @description Print the usage information
|
||||
## @audience public
|
||||
## @stability stable
|
||||
@ -697,7 +717,8 @@ function parse_args
|
||||
esac
|
||||
done
|
||||
|
||||
# if we get a relative path, turn it absolute
|
||||
# we need absolute dir for ${BASEDIR}
|
||||
cd "${CWD}"
|
||||
BASEDIR=$(cd -P -- "${BASEDIR}" >/dev/null && pwd -P)
|
||||
|
||||
if [[ ${BUILD_NATIVE} == "true" ]] ; then
|
||||
@ -723,6 +744,7 @@ function parse_args
|
||||
JENKINS=false
|
||||
fi
|
||||
|
||||
cd "${CWD}"
|
||||
if [[ ! -d ${PATCH_DIR} ]]; then
|
||||
mkdir -p "${PATCH_DIR}"
|
||||
if [[ $? == 0 ]] ; then
|
||||
@ -733,6 +755,9 @@ function parse_args
|
||||
fi
|
||||
fi
|
||||
|
||||
# we need absolute dir for PATCH_DIR
|
||||
PATCH_DIR=$(cd -P -- "${PATCH_DIR}" >/dev/null && pwd -P)
|
||||
|
||||
GITDIFFLINES=${PATCH_DIR}/gitdifflines.txt
|
||||
}
|
||||
|
||||
@ -821,17 +846,36 @@ function find_changed_modules
|
||||
function git_checkout
|
||||
{
|
||||
local currentbranch
|
||||
local exemptdir
|
||||
|
||||
big_console_header "Confirming git environment"
|
||||
|
||||
if [[ ${RESETREPO} == "true" ]] ; then
|
||||
cd "${BASEDIR}"
|
||||
if [[ ! -d .git ]]; then
|
||||
hadoop_error "ERROR: ${BASEDIR} is not a git repo."
|
||||
cleanup_and_exit 1
|
||||
fi
|
||||
|
||||
if [[ ${RESETREPO} == "true" ]] ; then
|
||||
${GIT} reset --hard
|
||||
if [[ $? != 0 ]]; then
|
||||
hadoop_error "ERROR: git reset is failing"
|
||||
cleanup_and_exit 1
|
||||
fi
|
||||
|
||||
# if PATCH_DIR is in BASEDIR, then we don't want
|
||||
# git wiping it out.
|
||||
exemptdir=$(relative_patchdir)
|
||||
if [[ $? == 1 ]]; then
|
||||
${GIT} clean -xdf
|
||||
else
|
||||
# we do, however, want it emptied of all _files_.
|
||||
# we need to leave _directories_ in case we are in
|
||||
# re-exec mode (which places a directory full of stuff in it)
|
||||
hadoop_debug "Exempting ${exemptdir} from clean"
|
||||
rm "${PATCH_DIR}/*" 2>/dev/null
|
||||
${GIT} clean -xdf -e "${exemptdir}"
|
||||
fi
|
||||
if [[ $? != 0 ]]; then
|
||||
hadoop_error "ERROR: git clean is failing"
|
||||
cleanup_and_exit 1
|
||||
@ -875,11 +919,6 @@ function git_checkout
|
||||
fi
|
||||
|
||||
else
|
||||
cd "${BASEDIR}"
|
||||
if [[ ! -d .git ]]; then
|
||||
hadoop_error "ERROR: ${BASEDIR} is not a git repo."
|
||||
cleanup_and_exit 1
|
||||
fi
|
||||
|
||||
status=$(${GIT} status --porcelain)
|
||||
if [[ "${status}" != "" && -z ${DIRTY_WORKSPACE} ]] ; then
|
||||
@ -1000,6 +1039,16 @@ function verify_valid_branch
|
||||
local check=$2
|
||||
local i
|
||||
|
||||
# shortcut some common
|
||||
# non-resolvable names
|
||||
if [[ -z ${check} ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ ${check} == patch ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
if [[ ${check} =~ ^git ]]; then
|
||||
ref=$(echo "${check}" | cut -f2 -dt)
|
||||
count=$(echo "${ref}" | wc -c | tr -d ' ')
|
||||
@ -2207,12 +2256,19 @@ function cleanup_and_exit
|
||||
|
||||
if [[ ${JENKINS} == "true" ]] ; then
|
||||
if [[ -e "${PATCH_DIR}" ]] ; then
|
||||
hadoop_debug "mv ${PATCH_DIR} ${BASEDIR} "
|
||||
if [[ -d "${PATCH_DIR}" ]]; then
|
||||
# if PATCH_DIR is already inside BASEDIR, then
|
||||
# there is no need to move it since we assume that
|
||||
# Jenkins or whatever already knows where it is at
|
||||
# since it told us to put it there!
|
||||
relative_patchdir >/dev/null
|
||||
if [[ $? == 0 ]]; then
|
||||
hadoop_debug "mv ${PATCH_DIR} ${BASEDIR}"
|
||||
mv "${PATCH_DIR}" "${BASEDIR}"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
big_console_header "Finished build."
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
@ -2442,6 +2498,8 @@ find_changed_files
|
||||
|
||||
determine_needed_tests
|
||||
|
||||
# from here on out, we'll be in ${BASEDIR} for cwd
|
||||
# routines need to pushd/popd if they change.
|
||||
git_checkout
|
||||
RESULT=$?
|
||||
if [[ ${JENKINS} == "true" ]] ; then
|
||||
|
@ -533,6 +533,9 @@ Release 2.8.0 - UNRELEASED
|
||||
HADOOP-11911. test-patch should allow configuration of default branch
|
||||
(Sean Busbey via aw)
|
||||
|
||||
HADOOP-11917. test-patch.sh should work with ${BASEDIR}/patchprocess
|
||||
setups (aw)
|
||||
|
||||
OPTIMIZATIONS
|
||||
|
||||
HADOOP-11785. Reduce the number of listStatus operation in distcp
|
||||
|
Loading…
Reference in New Issue
Block a user