Fix CacheV2 task to ensure cache directory exists for yarn packages #21034
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Issue
The CacheV2 task was failing during the post-job execution phase when caching yarn packages. The error occurred because the
SavePipelineCacheV0
agent plugin attempted to archive a directory that didn't exist:This happens specifically on the first run when:
path
input doesn't existThe Solution
Added a JavaScript script that runs before the agent plugin to ensure the cache directory exists:
restoreCache.js
that checks if the directory exists and creates it if neededtask.json
to include Node execution targets (10, 16, and 20) while preserving the agent plugin functionalityThis ensures that when users set up caching for Yarn packages as described in the documentation:
The task will now work properly even on the first run when the directory doesn't exist yet.
Fixes #12892.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.