Git Product home page Git Product logo

pipx-install-action's People

Contributors

brandonlwhite avatar dependabot[bot] avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

pipx-install-action's Issues

Error "Operation not permitted" from tar on cache restore

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

https://github.com/BrandonLWhite/pipx-install-action/actions/runs/7464191929/job/20310605551#step:4:20

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.

Python version used to generate cache hash needs to come from PIPX_DEFAULT_PYTHON

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:

  1. Invoke pipx environment --value PIPX_DEFAULT_PYTHON to get the path the python that pipx uses.
  2. Invoke the result in place of the hardcoded python to get the version string for hashing keys.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.