toolchain
toolchain copied to clipboard
Error: The "path" argument must be of type string. Received type undefined
Description
Mystery error. I am really not sure what is going on here. I had a CI pipeline that worked. Then we changed the AWS Instance type of the Github Action Runner and suddenly I get the error above. It seems like the toolchain actually got installed and the error happened after? The return status code of the Node process was 1
. The undefined
part suggest its some JS issue.
Here's what I tried, maybe some of it will help:
- I tried moving the action around
- I tried enabling all additional logging in GH Actions (no additional clues)
- I tried searching the
dist/index.js
file in this repo, but the above error string does not appear there at all, which is super puzzling.
The Runner is Amazon Linux.
Workflow code
jobs:
setup:
runs-on: [self-hosted, data-infra-runner]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-region: eu-west-1
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v1
- name: Install OS Dependencies
run: yum -y install gcc openssl-devel
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- uses: actions/setup-node@v2-beta
with:
node-version: '12'
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
Action output
##[debug]Evaluating condition for step: 'Run actions-rs/toolchain@v1'
##[debug]Evaluating: success()
##[debug]Evaluating success:
##[debug]=> true
##[debug]Result: true
##[debug]Starting: Run actions-rs/toolchain@v1
##[debug]Loading inputs
##[debug]Loading env
Run actions-rs/toolchain@v1
with:
toolchain: stable
default: false
override: false
env:
AWS_DEFAULT_REGION: eu-west-1
AWS_REGION: eu-west-1
##[debug]using toolchain from input: stable
##[debug]Unable to find "rustup" executable, installing it now. Reason: Error: Unable to locate executable file: rustup. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.
##[debug]Downloading https://sh.rustup.rs
##[debug]Destination /actions-runner1/_work/_temp/55df5a05-4a89-4681-bd61-af620f8fdfb4
##[debug]download complete
##[debug]Executing chmod 755 on the /actions-runner1/_work/_temp/55df5a05-4a89-4681-bd61-af620f8fdfb4
/actions-runner1/_work/_temp/55df5a05-4a89-4681-bd61-af620f8fdfb4 --default-toolchain none -y
info: downloading installer
info: profile set to 'default'
info: default host triple is x86_64-unknown-linux-gnu
info: skipping toolchain installation
Rust is installed now. Great!
To get started you need Cargo's bin directory ($HOME/.cargo/bin) in your PATH
environment variable. Next time you log in this will be done
automatically.
To configure your current shell, run:
source $HOME/.cargo/env
Error: The "path" argument must be of type string. Received type undefined
##[debug]Node Action run completed with exit code 1
##[debug]Finishing: Run actions-rs/toolchain@v1
I'm facing the same issue. Using debian-10 image.
K, after debugging it - got to this line.
Apparently the action counts on the process having a $HOME
folder defined.
Workaround: manually set $HOME
, for example, echo "HOME=/home/ubuntu" >> ${GITHUB_ENV}