This is an automated email from the ASF dual-hosted git repository.

anton-vinogradov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new d59c1d3a37d IGNITE-28823 Reduce duration of the "Check java code" 
GitHub Actions job (commit-check.yml) (#13281)
d59c1d3a37d is described below

commit d59c1d3a37de31924afaca95b15514c3ee5db2ae
Author: Anton Vinogradov <[email protected]>
AuthorDate: Fri Jun 26 15:42:44 2026 +0300

    IGNITE-28823 Reduce duration of the "Check java code" GitHub Actions job 
(commit-check.yml) (#13281)
    
    ## [IGNITE-28823](https://issues.apache.org/jira/browse/IGNITE-28823)
    
    The `check-java` job in `commit-check.yml` is the long pole of the "Code
    Style, Abandoned Tests, Javadocs" workflow (~8.9 min; every other job in
    the workflow finishes in under a minute). It runs three sequential Maven
    invocations and has two inefficiencies:
    
    1. The build is single-threaded (no `-T`), although `ubuntu-latest` has
    4 vCPUs.
    2. The "abandoned tests" step recompiles the whole reactor a second
    time. `maven-compiler-plugin` 3.15 logs *"Recompiling the module because
    of changed dependency"* for 28 modules (including `ignite-core`, 3322
    source files): the second invocation uses a different profile set, so
    the plugin's incremental engine treats reactor dependencies as changed
    and cascades a full recompile.
    
    ### Change
    
    - `-T 1C` on the codestyle / `test-compile` step — parallel reactor
    build.
    - `-Dmaven.compiler.useIncrementalCompilation=false` on the "abandoned
    tests" step — reuse the classes compiled by the previous step instead of
    recompiling.
    
    The "abandoned tests" step is intentionally **not** parallelized: the
    orphaned-test collection writes to a shared file finalized by the last
    reactor module, so `-T` would race.
    
    ### Why not merge the two steps
    
    Merging would pull `examples` / `lgpl` modules into the orphaned-test
    check (today it runs only over `-Pall-java,scala`) and could newly fail
    it. The chosen flag keeps the check scope identical —
    profile-conditional source roots (`java-lgpl`) exist only in the
    `examples` module, which is not part of the "abandoned tests" reactor.
    
    ### Verification (local, full reactor)
    
    | | before | after |
    |---|---|---|
    | step 2 recompiled modules | 30 (28 "changed dependency") | 2 (0
    "changed dependency") |
    | step 1 under `-T 1C` | — | 47 modules SUCCESS, checkstyle incl., 0
    failures |
    
    The before/after wall-clock is visible on this PR's own CI run, since
    the change is to `commit-check.yml` itself.
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    ---------
    
    Co-authored-by: Claude Opus 4.8 <[email protected]>
---
 .github/workflows/commit-check.yml | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/commit-check.yml 
b/.github/workflows/commit-check.yml
index 7f910879328..d48bca0dce3 100644
--- a/.github/workflows/commit-check.yml
+++ b/.github/workflows/commit-check.yml
@@ -43,6 +43,7 @@ jobs:
         with:
           distribution: 'temurin'
           java-version: ${{ matrix.java }}
+          cache: 'maven'
 
       - name: Install prerequisites
         run: |
@@ -96,11 +97,12 @@ jobs:
 
       - name: Run codestyle and licenses checks
         run: |
-          ./mvnw test-compile 
-Pall-java,licenses,lgpl,checkstyle,examples,scala,check-licenses -B -V
+          ./mvnw test-compile 
-Pall-java,licenses,lgpl,checkstyle,examples,check-licenses -B -V -T 1C
 
       - name: Run abandoned tests checks.
+        # Reuse classes from the previous step; the differing profiles 
otherwise trigger a full reactor recompile.
         run : |
-          ./mvnw test -Pcheck-test-suites,all-java,scala -B -V
+          ./mvnw test -Pcheck-test-suites,all-java -B -V 
-Dmaven.compiler.useIncrementalCompilation=false
 
       - name: Check javadocs.
         run : |

Reply via email to