| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Run primary dependency and wrapper cache restores in parallel while preserving existing outputs and save semantics. Add unit and E2E coverage for concurrent restore behavior, wrapper cache validation, and additional-cache error handling. Include a manual benchmark workflow for baseline-vs-candidate restore timing comparisons across OSes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d43ec3dd-96c7-4eb3-909e-b8123cd12d3c
There was a problem hiding this comment.
This PR reduces setup-java cache-enabled Maven/Gradle setup time by restoring the primary dependency cache and independent wrapper caches concurrently, while preserving primary-cache outputs/semantics and improving resilience when additional-cache saves fail.
Changes:
| File | Description |
|---|---|
| src/cache.ts | Implements concurrent key computation + concurrent restore for primary/additional caches; adjusts save error handling and logs. |
| dist/setup/index.js | Bundled build output reflecting the new restore/save behavior (setup entrypoint). |
| dist/cleanup/index.js | Bundled build output reflecting the new restore/save behavior (post/cleanup entrypoint). |
| .github/workflows/e2e-cache.yml | Extends cache E2E workflow to assert wrapper cache artifacts are restored for Maven/Gradle flows. |
| .github/workflows/benchmark-cache-restore.yml | Adds a manual benchmark workflow to compare baseline vs candidate cache restore wall time across OSes/tools/profiles. |
| tests/cache/maven/.mvn/wrapper/maven-wrapper.properties | Adds Maven wrapper properties fixture for wrapper-cache keying in tests/E2E. |
| tests/cache/gradle1/gradle/wrapper/gradle-wrapper.properties | Adds Gradle wrapper properties fixture for wrapper-cache keying in tests/E2E. |
| tests/cache.test.ts | Adds concurrency-focused unit tests and coverage for continuing primary save after additional-cache failure. |
| tests/benchmark-cache-restore.sh | Adds helper script used by the benchmark workflow to prepare/reset/populate/record/summarize timings. |
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
.github/workflows/e2e-cache.yml:317
- name: Confirm that the Maven Wrapper cache has been made
Sorry, something went wrong.
Use env variables for cache-hit values in benchmark record steps to avoid expression expansion in run commands, and rename E2E restore step labels for clarity. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d43ec3dd-96c7-4eb3-909e-b8123cd12d3c
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
| Back | FazBrowse Home | New Git URL |
Description:
This reduces setup time for cache-enabled Maven and Gradle jobs by running independent restore operations in parallel instead of serially. The change preserves current behavior for outputs, optional wrapper cache skipping, and post-job save sequencing, while tightening failure handling so wrapper save failures do not block the main dependency cache save.
Implementation highlights:
Fixes: #1171
Related issue:
#1171
Check list: