taiki-e / install-action

GitHub Action for installing development tools (mainly from GitHub Releases).
Apache License 2.0
249 stars 32 forks source link

Add manifest for cargo-nextest #518

Closed taiki-e closed 2 months ago

taiki-e commented 2 months ago

Closes #487

This is basically a revert of https://github.com/taiki-e/install-action/pull/183 and a fork of https://github.com/taiki-e/install-action/pull/182 (changed to apply only for nextest, see my comment in it for the reason). This improves security, performance, robustness of installation.

cc @sunshowers @jayvdb

seanmonstar commented 2 months ago

I don't know if it's related, but the timing lines up: as of 2 days ago, reqwest CI started failing on i686-pc-windows-gnu, and 86_64. It seems to fail to install the correct version of nextest: https://github.com/seanmonstar/reqwest/actions/runs/9438070294/job/26022148081#step:9:22

(If unrelated, I can move this to a new issue.)

taiki-e commented 2 months ago

A real problem is that msys64's bash is used here, which seems to introduce a lot of differences from the default one, especially that HOME will be a different one on the string.

https://github.com/seanmonstar/reqwest/actions/runs/9438070294/job/26022148081#step:4:2

  echo "C:\msys64\mingw32\bin" >> $GITHUB_PATH
  echo "C:\msys64\usr\bin" >> $GITHUB_PATH

Default one is: https://github.com/taiki-e/install-action/actions/runs/9465237915/job/26074336422#step:5:18

  shell: C:\Program Files\Git\bin\bash.EXE --noprofile --norc -e -o pipefail {0}

$HOME on bash is /c/Users/runneradmin.

When msys64 is used: https://github.com/seanmonstar/reqwest/actions/runs/9438070294/job/26022148081#step:8:17

  shell: C:\msys64\usr\bin\bash.EXE --noprofile --norc -e -o pipefail {0}

$HOME on bash is /home/runneradmin.

And the error you saw is due to the fact that a path starting /home/runneradmin/* that added to PATH by using the GitHub-provided mechanism for adding PATH (GITHUB_PATH) is not recognized by the msys64 bash. (a path starting /c/Users/runneradmin/* is recognized)

This will be worked around in https://github.com/taiki-e/install-action/pull/533.