This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new bf41db9a0eb2 CAMEL-23565: CI skip Scalpel analysis for root pom.xml
changes (#23371)
bf41db9a0eb2 is described below
commit bf41db9a0eb23a473fc60ee48bf68f8121cf7aaf
Author: Claus Ibsen <[email protected]>
AuthorDate: Thu May 21 07:28:32 2026 +0200
CAMEL-23565: CI skip Scalpel analysis for root pom.xml changes (#23371)
The root pom.xml contains build-infrastructure config (license plugin,
checkstyle, etc.) that does not affect module compilation or test
behavior. When Scalpel analyzes root pom.xml changes, it reports every
module as affected since they all inherit from it, causing CI to test
the entire project unnecessarily.
Only invoke Scalpel when a subdirectory pom.xml changes (parent/pom.xml,
module pom.xml).
Co-authored-by: Claude Opus 4.6 <[email protected]>
---
.github/CI-ARCHITECTURE.md | 2 ++
.github/actions/incremental-build/incremental-build.sh | 8 ++++++--
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/.github/CI-ARCHITECTURE.md b/.github/CI-ARCHITECTURE.md
index 4672dcd5a9c3..948f3e11b96a 100644
--- a/.github/CI-ARCHITECTURE.md
+++ b/.github/CI-ARCHITECTURE.md
@@ -158,6 +158,8 @@ Scalpel is configured permanently in `.mvn/extensions.xml`
(version `0.1.0`). On
Note: the script overrides `fullBuildTriggers` to empty
(`-Dscalpel.fullBuildTriggers=`) because Scalpel's default (`.mvn/**`) would
trigger a full build whenever `.mvn/extensions.xml` itself changes (e.g.,
Dependabot bumping Scalpel).
+Scalpel is only invoked when a **subdirectory** `pom.xml` is changed (e.g.
`parent/pom.xml`, `components/camel-kafka/pom.xml`). Changes to the **root**
`pom.xml` are excluded because it contains build-infrastructure config (license
plugin, checkstyle, etc.) that does not affect module compilation or test
behavior. Without this filter, Scalpel would report every module as affected
since they all inherit from the root POM.
+
## Manual Integration Test Advisories
Some modules are excluded from CI's `-amd` expansion (the `EXCLUSION_LIST`)
because they are generated code, meta-modules, or expensive integration test
suites. When a contributor changes one of these modules, CI cannot
automatically test all downstream effects.
diff --git a/.github/actions/incremental-build/incremental-build.sh
b/.github/actions/incremental-build/incremental-build.sh
index a1efc1e4c960..fa7f50ac7b17 100755
--- a/.github/actions/incremental-build/incremental-build.sh
+++ b/.github/actions/incremental-build/incremental-build.sh
@@ -562,10 +562,14 @@ main() {
done <<< "$pom_files"
fi
- # Step 2b: Scalpel detection (parallel, for any pom.xml change)
+ # Step 2b: Scalpel detection (for parent or module pom.xml changes)
# Scalpel uses effective POM model comparison — catches managed deps,
# plugin changes, and transitive impacts that grep misses.
- if echo "$diff_body" | grep -q '^diff --git a/.*pom\.xml'; then
+ # Skip when only the root pom.xml changed — it contains build-infrastructure
+ # config (license plugin, checkstyle, etc.) that doesn't affect module
+ # compilation or test behavior. Without this filter, Scalpel reports every
+ # module as affected because they all inherit from the root POM.
+ if echo "$diff_body" | sed -n 's|^diff --git a/\(.*\) b/.*|\1|p' | grep -q
'.*/pom\.xml$'; then
echo ""
echo "Running Scalpel POM analysis..."
runScalpelDetection