summaryrefslogtreecommitdiff
path: root/bin/gradle-report
diff options
context:
space:
mode:
Diffstat (limited to 'bin/gradle-report')
-rwxr-xr-xbin/gradle-report13
1 files changed, 10 insertions, 3 deletions
diff --git a/bin/gradle-report b/bin/gradle-report
index bbee2b7..cc0de03 100755
--- a/bin/gradle-report
+++ b/bin/gradle-report
@@ -25,7 +25,11 @@ EXTRA=("$@")
case "$KIND" in
detekt) TASK=":app:detekt"; REPORT="$PROJECT_DIR/app/build/reports/detekt/detekt.xml" ;;
- lint) TASK=":app:lintDebug"; REPORT="$PROJECT_DIR/app/build/lint-results-debug.xml" ;;
+ # AGP has moved this file between versions, so locate it rather than assuming. A hardcoded
+ # path that stops resolving turns into "MISSING ... PASS", which is worse than no check.
+ lint) TASK=":app:lintDebug"
+ REPORT=$(find "$PROJECT_DIR/app/build" -name "lint-results-debug.xml" 2>/dev/null | head -1)
+ REPORT=${REPORT:-$PROJECT_DIR/app/build/reports/lint-results-debug.xml} ;;
*) die "kind must be 'detekt' or 'lint', got '$KIND'" ;;
esac
@@ -58,10 +62,13 @@ if grep -qiE "is misspelled or does not exist|configuration file is invalid|inva
fi
if [ ! -f "$REPORT" ]; then
+ # Falling back to the exit code here is how a broken path becomes a silent pass. Say that
+ # the check did not actually happen.
echo "report : MISSING ($REPORT)"
- echo "result : $([ $STATUS -eq 0 ] && echo 'PASS (no report produced, nothing to read)' || echo 'FAIL')"
+ echo "hint : the report path may have moved; this check did NOT inspect any findings"
+ echo "result : FAIL — no report to read (gradle exit $STATUS)"
rm -f "$LOG"
- exit $STATUS
+ exit 1
fi
if [ "$REPORT" -ot "$MARKER" ] && [ $ALLOW_STALE -eq 0 ]; then