Skip to content

Documentation foot gun #147

Open
Open
@jasonkuhrt

Description

@jasonkuhrt

If user wants to use pnpm env ... then the current documentation leads them astray because it yields this $PATH:

/opt/hostedtoolcache/node/22.10.0/x64/bin:/home/runner/setup-pnpm/node_modules/.bin:/snap/bin:/home/runner/.local/bin:/opt/pipx_bin:/home/runner/.cargo/bin:/home/runner/.config/composer/vendor/bin:/usr/local/.ghcup/bin:/home/runner/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Note that hostedtoolcache precedes the pnpm bin. This means that when pnpm env is used it will not override the static bin in hostedtoolcache.

One way to fix this is change the order contrary to the docs of steps, such that node is setup BEFORE pnpm. But that only works if cache: pnpm is NOT used. 🐔 🥚

It also does not work to run pnpm setup after because it will see that pnpm is in the path (just not before hostedtoolcache) and thus do nothing:

Appended new lines to /home/runner/.bashrc

Next configuration changes were made:
export PNPM_HOME="/home/runner/setup-pnpm/node_modules/.bin"
case ":$PATH:" in
  *":$PNPM_HOME:"*) ;;
  *) export PATH="$PNPM_HOME:$PATH" ;;
esac

Are are solutions that permit pnpm env working AND node setup using cache: pnpm? If so, let's document them. If not, let's mention this caveat.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions