setup-deno icon indicating copy to clipboard operation
setup-deno copied to clipboard

[error] Parameter 'commandLine' cannot be null or empty.

Open davivcgarcia opened this issue 3 years ago • 14 comments

When using the action:

    - name: (API) Setup Deno environment
      uses: denolib/setup-deno@v2
      with:
        deno-version: v1.x

On a self-hosted runner, I see the following error:

Run denolib/setup-deno@v2
  with:
    deno-version: v1.x
##[error]Parameter 'commandLine' cannot be null or empty.

Any advice?

davivcgarcia avatar Jul 16 '20 16:07 davivcgarcia

The error seems to be generated here:

https://github.com/denolib/setup-deno/blob/482dc739be8628399f8b04bd11876f7d9a24f625/dist/index.js#L4754-L4766

davivcgarcia avatar Jul 16 '20 16:07 davivcgarcia

https://github.com/denolib/setup-deno/blob/482dc739be8628399f8b04bd11876f7d9a24f625/src/installer.ts#L193-L194

Is there gzip in self-hosted?

zhmushan avatar Jul 17 '20 03:07 zhmushan

https://github.com/denolib/setup-deno/blob/482dc739be8628399f8b04bd11876f7d9a24f625/src/installer.ts#L193-L194

Is there gzip in self-hosted?

This is indeed a problem, we should use the gzip implemented in pure nodejs

axetroy avatar Jul 17 '20 03:07 axetroy

https://github.com/denolib/setup-deno/blob/482dc739be8628399f8b04bd11876f7d9a24f625/src/installer.ts#L193-L194

Is there gzip in self-hosted?

Yes, there is.

[root@ip-172-31-52-214 ec2-user]# rpm -qa | grep gzip
gzip-1.9-9.el8.x86_64
[root@ip-172-31-52-214 ec2-user]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.2 (Ootpa)

davivcgarcia avatar Jul 17 '20 11:07 davivcgarcia

What are the other packages required for this action? I can check if all of them are properly installed.

davivcgarcia avatar Jul 17 '20 11:07 davivcgarcia

I just tested self-hosted, using Linux x64 environment, and successfully executed setup-deno🤔

zhmushan avatar Jul 17 '20 15:07 zhmushan

I just tested self-hosted, using Linux x64 environment, and successfully executed setup-denothinking

What distribution did you use? I'm using a CentOs/RHEL 8 minimum install.

davivcgarcia avatar Jul 17 '20 15:07 davivcgarcia

I too am experiencing this same error on a centos:8 docker container.

 /usr/bin/docker exec  1ac4a3ce3754dfaeeb0c7d6f38d7328f4d0621d78d43bf54890ebd4ab7adea87 sh -c "cat /etc/*release | grep ^ID"
##[error]Parameter 'commandLine' cannot be null or empty.

jameskerr avatar Jul 21 '20 20:07 jameskerr

Is the issue that on Centos 8 containers, await io.which("gzip") is returning an empty string? Then when that empty string is passed to exec.exec() we get that argument error?

https://github.com/denolib/setup-deno/blob/482dc739be8628399f8b04bd11876f7d9a24f625/src/installer.ts#L193-L194

jameskerr avatar Jul 21 '20 20:07 jameskerr

Is the issue that on Centos 8 containers, await io.which("gzip") is returning an empty string? Then when that empty string is passed to exec.exec() we get that argument error?

https://github.com/denolib/setup-deno/blob/482dc739be8628399f8b04bd11876f7d9a24f625/src/installer.ts#L193-L194

I suspect yes, I need to verify on CentOS, but it will take a few days. Anyway, gzip implemented using pure nodejs is necessary

zhmushan avatar Jul 22 '20 01:07 zhmushan

I found a way to get this action to work on Centos 8 containers. Before running this action, install the unzip package using dnf.

dnf install -y unzip

The workflow file that worked for me was:

name: Deno Install Test
on: [push]

jobs:
  install:
    name: "Deno Install"
    runs-on: ubuntu-18.04
    container:
      image: centos:8
    steps:
      - run: dnf install -y unzip
      - uses: denolib/setup-deno@v2
        with:
          deno-version: v1.x
      - run: deno --version

jameskerr avatar Jul 22 '20 13:07 jameskerr

https://github.com/denolib/setup-deno/blob/e4ecee2bc3a29afbb168ee2f23c93df0d2fda884/src/installer.ts#L186-L197 Setup the 1.x version of Deno, this code is not executed at all, a confusing error...

zhmushan avatar Jul 31 '20 03:07 zhmushan

See: https://github.com/actions/toolkit/blob/905b2c7b0681b11056141a60055f1ba77358b7e9/packages/tool-cache/src/tool-cache.ts#L235-L242

Since we rely on @actions/tool-cache, and it eventually calls tar, this is an issue of @actions/tool-cache

zhmushan avatar Jul 31 '20 03:07 zhmushan

I don't think there's anything wrong with setup-deno: it's just that self-hosted runners don't have a lot of the same binaries that Github runners do. act has a similar issue: command not found

MVEMCJSUNPE avatar Oct 29 '20 02:10 MVEMCJSUNPE