Open yashsway opened 1 month ago
Hi @yashsway 👋, Thank you for reporting this issue. We will investigate it and get back to you as soon as we have some feedback.
We're seeing this too for the first time today on yarn berry projects with actions/setup-node@v4
.
Unexpectedly getting the same with a project with a yarn v1 lockfile and cache: yarn
, on v3
, v4.0.0
, and v4.0.4
(=v4
).
Hi Team, We are also seeing the same error frequently in Monorepo
Post job cleanup.
Error: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.
This is my github action:-
- name: Set up Node.js
uses: actions/setup-node@v4.0.4
with:
node-version: "18"
cache: "yarn"
- name: Set up SSH agent
uses: webfactory/ssh-agent@v0.5.4
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Login to Azure
uses: azure/login@v2.1.1
with:
creds: |
{
"clientId": "${{ env.ARM_CLIENT_ID }}",
"clientSecret": "${{ env.ARM_CLIENT_SECRET }}",
"tenantId": "${{ env.ARM_TENANT_ID }}",
"subscriptionId": "${{ env.ARM_SUBSCRIPTION_ID }}"
}
- name: Authenticate with GitHub
run: git config --global url."https://$MY_GITHUB_TOKEN@github.com".insteadOf https://github.com
- name: Install Dependencies
run: yarn install
Runner: Github Hosted
We are installing the required dependencies too , and this issue started to occur few days back. Previously this was not the case. Kindly help us in resolving this
Hello @yashsway Thank you for reporting the issue!
The error "Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved" occurs because the caching action cannot find the specified paths. This typically happens when the necessary directories or files do not exist at the time the caching action is executed.
Explanation and Steps to Resolve:
Ensure Dependencies are Installed Before Caching: The caching action needs the dependencies to be installed first to create the necessary directories and files. In your workflows, the pnpm install step should be executed before setting up caching.
Updated workflow:
env: CI: true PNPM_CACHE_FOLDER: .pnpm-store jobs: version_or_release: name: 'Version and open PR (or) release private packages' timeout-minutes: 15 runs-on: ubuntu-latest environment: 'Production - Private Packages' steps:
name: Checkout code repository uses: actions/checkout@v3 with: fetch-depth: 0
name: Setup pnpm uses: pnpm/action-setup@v4
name: Install dependencies run: pnpm install --frozen-lockfile
name: Setup pnpm store config run: pnpm config set store-dir $PNPM_CACHE_FOLDER
By ensuring that the dependencies are installed before the caching step, you can avoid the path validation error and successfully cache the pnpm dependencies.
If you are experiencing the same issue with a project that uses a Yarn v1 lockfile and the cache: yarn
option, the same principle applies: ensure that the dependencies are installed before the caching step.
I hope this helps! Please let us know if you have any further concerns or questions.
Ensure Dependencies are Installed Before Caching: The caching action needs the dependencies to be installed first to create the necessary directories and files. In your workflows, the pnpm install step should be executed before setting up caching.
Sorry @mahalakshmi-rekadi but it doesn't make any sense to me. What is the purpose of cache then? If we need to install the packages before activating cache, well, then cache is useless.
Hello @javiertury , The purpose of caching in GitHub Actions is to reduce workflow run times by storing dependencies. When dependencies are installed (e.g., using pnpm install), they are cached. This cache is then used in future workflow runs to skip the installation step, provided the cache is up-to-date. If the cache is missing or outdated, the dependencies are reinstalled and the cache is updated accordingly. The initial installation is essential as it creates the necessary directories and files, which are then cached. This caching mechanism significantly speeds up subsequent runs by restoring the cache instead of reinstalling dependencies, thus avoiding redundant installations. I hope this helps! Please let us know if you have any further concerns or questions.
@mahalakshmi-rekadi, some issues are still not clear to me.
Suppose that I run your proposed workflow (first install, then setup node with cache for pnpm). Does it mean that next time I run that workflow, the install step will read from cache? Or does it imply that I have to manually edit the action and move the installation step to the end in order to read from the cache? The last case would be very inconvenient, specially if the cache is purged or expired and I have to setup everything manually again every so often.
We had this same issue, fixed by updating yarn. Maybe it is the same as for you.
Hi Team, We are also seeing the same error frequently in Monorepo
Post job cleanup. Error: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.
This is my github action:-
- name: Set up Node.js uses: actions/setup-node@v4.0.4 with: node-version: "18" cache: "yarn" - name: Set up SSH agent uses: webfactory/ssh-agent@v0.5.4 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - name: Login to Azure uses: azure/login@v2.1.1 with: creds: | { "clientId": "${{ env.ARM_CLIENT_ID }}", "clientSecret": "${{ env.ARM_CLIENT_SECRET }}", "tenantId": "${{ env.ARM_TENANT_ID }}", "subscriptionId": "${{ env.ARM_SUBSCRIPTION_ID }}" } - name: Authenticate with GitHub run: git config --global url."https://$MY_GITHUB_TOKEN@github.com".insteadOf https://github.com - name: Install Dependencies run: yarn install
Runner: Github Hosted
We are installing the required dependencies too , and this issue started to occur few days back. Previously this was not the case. Kindly help us in resolving this
Can anyone suggest on this, in our case we are even installing the dependencies, and the failure is only for few of them and not all. It is like for every 10 workflows run one time the error occurs. Let me know if anyone has any suggestions on this
Hello Everyone, apologies for the confusion earlier. After a thorough investigation, we discovered that the missing PNPM cache directory (i.e., PNPM_CACHE_FOLDER) was the root cause of the ""Path Validation Error: Path(s) specified in the action for caching does not exist.""
It’s important to note that the absence of the PNPM_CACHE_FOLDER environment variable caused the failure and the job runs successfully even if we remove that variable env: PNPM_CACHE_FOLDER: .pnpm-store .
Potential Root Cause in the Original Workflow: Missing Cache Directory: The original workflow did not ensure the PNPM cache directory was created before attempting to access it. This led to the path validation error when the caching action tried to locate a non-existent directory.
Changes in the Updated Workflow: Verification of Cache Directory: A new step has been added to check for the existence of the cache directory. If it’s not found, the directory is created, which prevents errors during the caching process.
- name: Verify PNPM Cache Directory
run: |
if [ ! -d ""$PNPM_CACHE_FOLDER/store/v3"" ]; then
echo ""PNPM cache directory does not exist, creating it.""
mkdir -p ""$PNPM_CACHE_FOLDER/store/v3""
else
echo ""PNPM cache directory exists.""
fi
The above changes resolved the Path Validation error, allowing the cache to be saved and utilized in subsequent runs. Please see the screenshots for your reference.
Please feel free to reach us in case of any concerns/clarifications needed
Description: Getting a strange error in the "Post setup node.js" step in my GitHub workflow. I ran the workflow with debugging enabled and this step fails with this error:
Action version: v3 as
uses: actions/setup-node@v3
Platform:
ubuntu-latest
)Runner type:
Tools version:
pnpm
("packageManager": "pnpm@9.1.2"
inpackage.json
at the root of my monorepo)Repro steps:
This is my GitHub action.
Expected behavior: Not really sure what is actually supposed to happen here.
Actual behavior: With debugging enabled, this is the full trace for the step:
0s
[debug]Evaluating condition for step: 'Post setup node.js'
[debug]Evaluating: success()
[debug]Evaluating success:
[debug]=> true
[debug]Result: true
[debug]Starting: Post setup node.js
[debug]Loading inputs
[debug]Evaluating: (((github.server_url == 'https://github.com') && github.token) || '')
[debug]Evaluating Or:
[debug]..Evaluating And:
[debug]....Evaluating Equal:
[debug]......Evaluating Index:
[debug]........Evaluating github:
[debug]........=> Object
[debug]........Evaluating String:
[debug]........=> 'server_url'
[debug]......=> 'https://github.com'
[debug]......Evaluating String:
[debug]......=> 'https://github.com'
[debug]....=> true
[debug]....Evaluating Index:
[debug]......Evaluating github:
[debug]......=> Object
[debug]......Evaluating String:
[debug]......=> 'token'
[debug]....=> '***'
[debug]..=> '***'
[debug]=> '***'
[debug]Expanded: ((('https://github.com' == 'https://github.com') && '***') || '')
[debug]Result: '***'
[debug]Loading env
Post job cleanup.
[debug]Checking zstd --quiet --version
[debug]1.5.6
[debug]zstd version: 1.5.6
[debug]implicitDescendants 'false'
[debug]followSymbolicLinks 'true'
[debug]implicitDescendants 'false'
[debug]omitBrokenSymbolicLinks 'true'
[debug]Search path '/home/runner/setup-pnpm/node_modules/.bin/store/v3'
[debug]Cache Paths:
[debug][]
Error: Path Validation Error: Path(s) specified in the action for caching do(es) not exist, hence no cache is being saved.
[debug]Node Action run completed with exit code 1
[debug]Finishing: Post setup node.js