Skip to content

Fix caching when wrapper distributions are absent - #1151

Merged
brunoborges merged 4 commits into
actions:mainfrom
brunoborges:brunoborges-fix-maven-wrapper-cache-resolution
Jul 28, 2026
Merged

Fix caching when wrapper distributions are absent#1151
brunoborges merged 4 commits into
actions:mainfrom
brunoborges:brunoborges-fix-maven-wrapper-cache-resolution

Conversation

@brunoborges

Copy link
Copy Markdown
Contributor

Description:
Projects can keep Maven or Gradle wrapper metadata while intentionally using the system build tool, leaving the wrapper distribution directory absent. The post action now resolves optional wrapper-cache paths before calling @actions/cache; when no path exists, it skips only that wrapper cache and continues saving the main dependency cache.

Regression tests cover both Maven and Gradle and verify that the main cache is still saved. The generated setup and cleanup bundles are rebuilt with the fix.

Related issue:
Fixes: #1150

Check list:

  • Ran npm run check locally (format, lint, build, test) and all checks pass.
  • Mark if documentation changes are required.
  • Mark if tests were added or updated to cover the changes.

Skip optional Maven and Gradle wrapper cache saves when their distribution paths do not exist, while allowing the main dependency cache to save.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: a43181c5-548d-4293-be58-b76c03cece79
Copilot AI review requested due to automatic review settings July 28, 2026 22:45
@brunoborges
brunoborges requested a review from a team as a code owner July 28, 2026 22:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request addresses a caching failure in the post step when Maven/Gradle wrapper metadata exists but the wrapper distribution directory is absent, ensuring the main dependency cache can still be saved while skipping only the optional wrapper cache.

Changes:

  • Add a pre-save path resolution/existence check for wrapper (additional) caches to avoid @actions/cache path validation errors.
  • Extend regression coverage to include Maven + Gradle scenarios where wrapper properties exist but wrapper distributions do not.
  • Rebuild the generated dist bundles to include the fix.
Show a summary per file
File Description
src/cache.ts Adds wrapper-cache path resolution/skip logic before calling saveCache.
tests/cache.test.ts Adds/updates tests to ensure wrapper cache skips do not prevent saving the main cache.
dist/setup/index.js Rebuilt bundle reflecting the updated wrapper-cache save behavior.
dist/cleanup/index.js Rebuilt bundle reflecting the updated wrapper-cache save behavior.

Review details

Tip

Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

  • Files reviewed: 2/4 changed files
  • Comments generated: 1
  • Review effort level: Low

Comment thread src/cache.ts Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: a43181c5-548d-4293-be58-b76c03cece79
Regenerate the setup and cleanup bundles after updating additional cache saves to use resolved paths.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: a43181c5-548d-4293-be58-b76c03cece79
@brunoborges
brunoborges merged commit 382d4b7 into actions:main Jul 28, 2026
439 checks passed
brunoborges added a commit that referenced this pull request Jul 29, 2026
Skip optional Maven and Gradle wrapper cache saves when their distribution paths do not exist, while allowing the main dependency cache to save.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: c0b19ff2-ef52-4ac1-a832-0f8f72c43219
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Maven caching fails completely when wrapper files exist but wrapper is not used

2 participants