brandonlwhite / pipx-install-action Goto Github PK
View Code? Open in Web Editor NEWGitHub Action for installing Python CLIs with pipx
License: MIT License
GitHub Action for installing Python CLIs with pipx
License: MIT License
Restoring the pipx cached venv is resulting in errors like:
/usr/bin/tar: ../../../../../opt/pipx/shared/include: Cannot utime: Operation not permitted
/usr/bin/tar: ../../../../../opt/pipx/shared/include: Cannot change mode to rwxr-xr-x: Operation not permitted
/usr/bin/tar: ../../../../../opt/pipx/shared/bin: Cannot utime: Operation not permitted
/usr/bin/tar: ../../../../../opt/pipx/shared/bin: Cannot change mode to rwxr-xr-x: Operation not permitted
This looks like a filesystem permission issue. How is pipx able to install venvs to these locations, but not the cache restore?
Actually, I'm noticing that only the shared
restore is failing. I think this is because in the Github provided runners, pipx has already had some packages installed like ansible and yamllint which you can catch a glimpse of in the pipx list --json
output. When developing this action locally, I used ACT which doesn't pre-install anything, so this is different than how it behaves in GHA.
I think the best solution is to remove the shared
caching and assume it will already be there to to preinstalled packages, along with updating the test ACT workflow to pipx install a package first before calling pipx-install-action. Or, I could add a condition that checks if the PIPX_SHARED_LIBS already exists. before invoking the cache restore.
Pipx uses the system Python to install the CLI tools. This can be different if a GHA workflow has used setup-python to install a different version.
In order to fix this:
pipx environment --value PIPX_DEFAULT_PYTHON
to get the path the python that pipx uses.python
to get the version string for hashing keys.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.