Claus Ibsen created CAMEL-23565:
-----------------------------------
Summary: CI incremental-build should not test all modules when
only the root pom.xml changes
Key: CAMEL-23565
URL: https://issues.apache.org/jira/browse/CAMEL-23565
Project: Camel
Issue Type: Improvement
Components: build system
Reporter: Claus Ibsen
PR #23364 adds a minor change to the root {{pom.xml}} (registering {{.cast}}
and {{.tape}} file extensions with the license-maven-plugin). Despite the PR
only touching files under {{dsl/camel-jbang/camel-jbang-plugin-tui/}} and the
root {{pom.xml}}, the CI ends up testing *every* Camel module.
*Root cause:*
The incremental build script
({{.github/actions/incremental-build/incremental-build.sh}}) has two POM change
detection paths:
1. *Grep-based detection* (line 528): correctly scoped — only triggers for
{{parent/pom.xml}} changes, not root {{pom.xml}}.
2. *Scalpel detection* (line 568): triggers on *any* {{pom.xml}} change. When
the root {{pom.xml}} changes, Scalpel compares effective POM models and detects
that the {{license-maven-plugin}} configuration changed. Since every module
inherits from the root POM, Scalpel reports all modules as affected.
For non-functional root {{pom.xml}} changes like license plugin configuration,
CI formatting rules, or other build-infrastructure-only settings, this is
wasteful — no module's compilation, test, or runtime behavior is affected.
*Fix:* Exclude the root {{pom.xml}} from Scalpel analysis — only run Scalpel
when a subdirectory {{pom.xml}} ({{parent/pom.xml}}, module {{pom.xml}})
changes.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)