You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Description:
I want to optionally annotate the cache-key with an extra description, such that if we have multiple jobs, that all only have a partial execution of the pom, they can still get a full cached .m2 repo.
Something like:
- name: Set up JDKuses: actions/setup-java@v4with:
java-version: ${{ matrix.jdk }}cache: 'maven'cache-key-prefix: 'test'
Justification:
For example
runner 1 only runs mvn test (possibly in a matrix)
runner 2 triggers some lints with mvn check (runs in parallel to runner 1)
runner 3 runs the build & publish action after 1 and 2 are done
Right now, for a new pom the following happens:
runner 1 sees a new checksum, so it doesn't download an old cache, and then starts the regular.
at the end of runner 1, the current .m2 repo, that is only filled with the plugins to run mvn test gets submitted as the cache for this specific pom.xml
runner 2 actually races with this submission, with again a sub-optimal filled .m2 repo
runner 3 starts, downloads the cache of runner 1 or runner 2
the maven command that is run has to download quite some dependencies not needed for testing or checking.
as runner 3 stops, the java-action plugin does not upload this .m2 repo, as there was a cache hit when it started.
In situations like this, every run afterwards will have runner 3 re-download dependencies, and runner 1 or 2, depending on who lost the race. The current workaround is to add some spaces to the pom.xml just before the setup-java action is run.
Are you willing to submit a PR?
Yes, if I get an indication if such a PR has a chance of getting merged, I'm willing to allocate some time to add this.
The text was updated successfully, but these errors were encountered:
Description:
I want to optionally annotate the cache-key with an extra description, such that if we have multiple jobs, that all only have a partial execution of the pom, they can still get a full cached .m2 repo.
Something like:
Justification:
For example
mvn test
(possibly in a matrix)mvn check
(runs in parallel to runner 1)Right now, for a new pom the following happens:
mvn test
gets submitted as the cache for this specific pom.xmlIn situations like this, every run afterwards will have runner 3 re-download dependencies, and runner 1 or 2, depending on who lost the race. The current workaround is to add some spaces to the pom.xml just before the
setup-java
action is run.Are you willing to submit a PR?
Yes, if I get an indication if such a PR has a chance of getting merged, I'm willing to allocate some time to add this.
The text was updated successfully, but these errors were encountered: