reda-alaoui commented on PR #175:
URL: 
https://github.com/apache/maven-build-cache-extension/pull/175#issuecomment-2315794689

   Let me try to be more concrete by exposing a simplified example.
   
   I have a maven project with a single module. In this module, I have many 
prod classes and many slow tests in this module. 
   
   My naive CI (Jenkins) pipeline is a single step: `mvn clean verify`. Running 
this takes 5 hours (30 minutes of compilation + 4h30m of test execution).
   
   My CI can execute jobs among multiple machines. So I decide to distribute 
the pipelines of my tests among my CI machines.
   I split the tests in 3 groups. To assign each test a group, I annotate each 
test class with a JUnit 5 `@Tag` annotation with a value of `group1`, `group2` 
or `group3`.
   My new pipeline is:
   1. `mvn clean verify -DskipTests` (~30 minutes)
   2. In parallel:
       1. `mvn clean verify -Dgroups=group1` (4h30m/3)
       2. `mvn clean verify -Dgroups=group2` (4h30m/3)
       3. `mvn clean verify -Dgroups=group3` (4h30m/3)
   
   I want:
   * steps 2.x to reuse the cache produced by step 1 (I needed 
https://github.com/apache/maven-build-cache-extension/pull/177#pullrequestreview-2262014561
 to make this one totally work)
   * that running again any step without any code change should skip all maven 
plugin executions
   
   > Does statement 2 imply that the rerun is a different reactor compile -> 
test group 1 and the expectation is that the results of the initial run are 
reused?
   
   Yes
   
   > Does parallel[test group 1, test group 2, test group 3] refer to three 
different reactor modules running tests?
   
   Yes
   
   > Are compile and any of test group 1, test group 2, test group 3 parts of 
the same module?
   
   Not necessarly. You can have a test group spanning across multiple modules.
   
   > You can move the parameter to the effective pom. One way to do this is by 
using a profile that defines a literal property value and referencing that 
value in a plugin. By doing so, the value will be interpolated to the plugin 
parameters and become part of the effective pom.
   
   Yes I know, and as I said I don't want a different checksum between all 
those steps.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to