include the use of the GitHub provided actions/cache action to cache dependencies installed by pnpm, with the input restore-keys set to a loose match in the form:
This leads to non-deterministic outcomes of any jobs in the worksflows running on the same operating system in parallel, since the state of the GitHub caches in the branch concerned depends on the variable timing of other jobs which are running. Jobs which are exposed to this issue are:
basic-pnpm-ubuntu-20 and basic-pnpm-ubuntu-22 jobs in the example-basic-pnpm.yml workflow
Issue
pnpm basic and workspaces workflows
include the use of the GitHub provided actions/cache action to cache dependencies installed by pnpm, with the input
restore-keys
set to a loose match in the form:This leads to non-deterministic outcomes of any jobs in the worksflows running on the same operating system in parallel, since the state of the GitHub caches in the branch concerned depends on the variable timing of other jobs which are running. Jobs which are exposed to this issue are:
basic-pnpm-ubuntu-20
andbasic-pnpm-ubuntu-22
jobs in the example-basic-pnpm.yml workflowThe non-deterministic behaviour is in contrast to the
cypress-io/github-action
which uses exact cache key matches.Change
Remove the option
restore-keys
from the workflows listed above and from the documentation examples in the README.Correct also an error in example-start-and-pnpm-workspaces.yml where the cache was incorrectly using the lock file from examples/basic-pnpm instead of from examples/start-and-pnpm-workspaces.
Related issues
Related PRs
References
Verification
Downgrade the pnpm examples to Cypress
13.8.0
Run each workflow twice and confirm no errors.
Revert the pnpm examples to Cypress
13.9.0
and again run each workflow twice with no errors.