HBASE-24078 SpotBugs check automatically skip inapplicable modules

Without patch, the spotbugs results include warnings for inapplicable
modules:

+---------------------------------------------------------------------------
|      |                |            | Compile Tests
+---------------------------------------------------------------------------
|   0  |        mvndep  |   0m 11s   | Maven dependency ordering
|  +1  |    mvninstall  |   2m 47s   | the source passed
|   0  |      spotbugs  |   0m 11s   | branch/hbase-annotations no spotbugs
|      |                |            | output file (spotbugsXml.xml)
|   0  |      spotbugs  |   0m 14s   | branch/hbase-assembly no spotbugs output
|      |                |            | file (spotbugsXml.xml)
|   0  |      spotbugs  |   0m 07s   |
|      |                |            | branch/hbase-archetypes/hbase-archetype-bu
|      |                |            | ilder no spotbugs output file
|      |                |            | (spotbugsXml.xml)
+---------------------------------------------------------------------------

With patch,

+---------------------------------------------------------------------------
|      |                |            | Compile Tests
+---------------------------------------------------------------------------
|   0  |        mvndep  |   0m 13s   | Maven dependency ordering
|  +1  |    mvninstall  |   3m 09s   | the source passed
|  +1  |      spotbugs  |  17m 09s   | the source passed
+---------------------------------------------------------------------------

Signed-off-by: stack <stack@apache.org>
This commit is contained in:
Nick Dimiduk 2020-03-25 15:45:28 -07:00 committed by Nick Dimiduk
parent 6f675e269c
commit 593f44c928
1 changed files with 6 additions and 19 deletions

View File

@ -153,8 +153,8 @@ function personality_modules
# If BUILDMODE is 'patch', for unit and compile testtypes, there is no need to run individual # If BUILDMODE is 'patch', for unit and compile testtypes, there is no need to run individual
# modules if root is included. HBASE-18505 # modules if root is included. HBASE-18505
if [[ "${BUILDMODE}" == "full" ]] || \ if [[ "${BUILDMODE}" == "full" ]] || \
( ( [[ "${testtype}" == unit ]] || [[ "${testtype}" == compile ]] || [[ "${testtype}" == checkstyle ]] ) && \ { { [[ "${testtype}" == unit ]] || [[ "${testtype}" == compile ]] || [[ "${testtype}" == checkstyle ]]; } && \
[[ "${MODULES[*]}" =~ \. ]] ); then [[ "${MODULES[*]}" =~ \. ]]; }; then
MODULES=(.) MODULES=(.)
fi fi
@ -190,23 +190,10 @@ function personality_modules
# For some reason, spotbugs on root is not working, but running on individual modules is # For some reason, spotbugs on root is not working, but running on individual modules is
# working. For time being, let it run on original list of CHANGED_MODULES. HBASE-19491 # working. For time being, let it run on original list of CHANGED_MODULES. HBASE-19491
for module in "${CHANGED_MODULES[@]}"; do for module in "${CHANGED_MODULES[@]}"; do
# skip spotbugs on hbase-shell and hbase-it. hbase-it has nothing # skip spotbugs on any module that lacks content in `src/main/java`
# in src/main/java where spotbugs goes to look if [[ "$(find "${BASEDIR}/${module}" -iname '*.java' -and -ipath '*/src/main/java/*' \
# skip hbase-shaded* as there is no java code in them -type f | wc -l | tr -d '[:space:]')" -eq 0 ]]; then
# skip all modules with no java code or at least, non test java code yetus_debug "no java files found under ${module}/src/main/java. skipping."
if [[ ${module} == hbase-shell ]]; then
continue
elif [[ ${module} == hbase-it ]]; then
continue
elif [[ ${module} == hbase-shaded* ]]; then
continue
elif [[ ${module} == hbase-build-configuration ]]; then
continue
elif [[ ${module} == hbase-checkstyle ]]; then
continue
elif [[ ${module} == hbase-resource-bundle ]]; then
continue
elif [[ ${module} == hbase-testing-util ]]; then
continue continue
else else
# shellcheck disable=SC2086 # shellcheck disable=SC2086