Comments (3)
The solution documented by actions/setup-node
worked for me, but I ran into a limitation: I use Cypress, which downloads binaries in a post-install
script and stores them in a ~/.cache/Cypress
folder that is meant to be cached along with the pnpm store directory.
The maintainers of actions/setup-node
are not willing to complexify the caching feature to solve this, and I understand their reasoning. The feature is really just for convenience and that's a good thing.
if pnpm/action-setup has cache built-in, things would've been a lot simpler.
I don't think pnpm/action-setup
should attempt to deal with caching dependencies, whichever the approach:
- I don't see the point of providing a convenience caching option since
actions/setup-node
already provides one (if it doesn't work for you @transitive-bullshit, then that's something to look into for sure). - Attempting to support more advanced caching scenarios like mine would basically require replicating
actions/cache
's configuration API, which seems pointless.
I do think, however, that the README should document the convenience caching method provided by actions/setup-node
... or at least link to it.
For advanced caching use cases, in my opinion, pnpm/action-setup
should just do its best to make caching the pnpm store directory in a separate action as easy as possible. Right now, I think the main complexity comes from having an extra step to get the pnpm store's path (i.e. echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
). Any chance pnpm/action-setup
could save the pnpm store path as an output so it can be used directly in actions/cache
with path: ${{ steps.pnpm-install.outputs.storePath }}
?
from action-setup.
The official actions/setup-node guide also recommends a completely different, simpler approach which doesn't seem to work.
Sounds like a bug on actions/setup-node
behalf? I am not a maintainer of actions/setup-node
so I can do nothing about it. I cannot just copy the guide on actions/setup-node
to pnpm/action-setup
because, if your words are to be believed, it doesn't work.
from action-setup.
But I do agree that currently, the only way to do cache is a bit to complex, if pnpm/action-setup
has cache built-in, things would've been a lot simpler. I'm not going to implement it though, if someone else wants to tackle this, feel free.
from action-setup.
Related Issues (20)
- Build script fails with "Cannot augment module '_' with value exports because it resolves to a non-module entity."
- Duplicate message in error: in the package.json with the key "packageManager" HOT 1
- How does this compare to `run: corepack enable`? HOT 10
- `dest` not working HOT 1
- Could not read from remote repository due to renamed organization
- ENOENT: no such file or directory during self-install HOT 6
- Add support for `volta.pnpm` field HOT 1
- Update to Node.js v20 HOT 1
- should upgrade node16 to node20 HOT 1
- The action breaks the container environment in the openSUSE HOT 1
- Permission denied errors with github repo references in transitive deps HOT 1
- Add support for grabbing `version` from the `engines.pnpm` field HOT 2
- How to cache pnpm ? HOT 1
- README references old versions of pnpm
- Installing pnpm when the package.json isn't in the root directory HOT 3
- Enable Code Scanning & Address Code Quality Issues HOT 4
- `v2` not up to date HOT 5
- Invalid
- EACCES: permission denied when running in a container w/ non-default user
- node20 support HOT 18
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from action-setup.