Skip to content

Commit 9e7e1c9

Browse files
joaodinissfclaude
andcommitted
ci: run CPD without a compile pass in the lint lane
CPD tokenizes sources under src/ and needs neither bytecode nor a resolved target platform, so the second lint invocation drops its compile goals. cpd.xml outputs are identical with and without the compile pass, verified at the current token threshold and at the PMD default of 100 (timestamp attributes aside). Measured locally (warm tree, JDK 21): 6.8s vs 44.3s at the current threshold; 4.5s vs 28.5s at threshold 100. In CI the invocation was 53s, ~40s of it redundant recompilation and JVM startup. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent d692a4f commit 9e7e1c9

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

‎.github/workflows/verify.yml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,13 @@ jobs:
5858
- name: CPD report (separate invocation — no SARIF support)
5959
# CPD has no SARIF renderer; emits cpd.xml only. Run standalone so the
6060
# PMD -Dformat flag isn't in scope.
61+
# No `compile`: CPD is token-based over src/ and needs neither bytecode
62+
# nor the target platform — cpd.xml is identical with and without a
63+
# compile pass.
6164
# NOTE: the CPD token threshold is governed by pmd.cpd.min in
6265
# ddk-parent/pom.xml.
6366
run: |
6467
mvn -T 2C -f ./ddk-parent/pom.xml --batch-mode --fail-never \
65-
compile \
6668
pmd:cpd-check
6769
6870
- name: Merge per-module SARIFs (PMD + Checkstyle)

0 commit comments

Comments
 (0)