在 Gitlab 上设置 CI/CD 管道 (Windows, yml)

Setting up CI/CD pipeline on Gitlab (Windows, yml)

我正在尝试为我在 gitlab 上的电子应用程序设置 CI/CD 管道。 gitlab-runner 是在 windows 机器上安装的,目前在线。在代码库中,yml 文件放在根文件夹中。管道启动,runner 和 gitlab 之间有一个连接。 我在寻找 npm 时遇到了问题。尽管 nodejs 和 npm 安装在 C:\Program Files\nodejs 中,但我仍然在 shell executor.

上收到错误

.gitlab-ci.yml

   stages:
  - build

build:
  stage: build
  tags:
    - BuildServerTag
  before_script:
    - SET PATH=$c/PROGRA~1/nodejs/
  script:
    - echo "Hello World"
    - npm -v

错误: npm:术语 'npm' 未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。

我试过以下方法:

  1. 将 C:\Program Files\nodejs 设置为运行器上的系统环境变量。
  2. 在 yml 文件中使用 SET Path
  3. 在 yml 文件中使用 npm 的完整路径

由于您使用的是 powershell,因此您可以像这样更改 PATH:


script:
  # check that the files are actually there
  - dir "C:\Program Files\nodejs"
  # append nodejs onto PATH
  - '$env:Path += ";C:\Program Files\nodejs"'

还要确保您的 NodeJS 二进制文件 实际上 C:\Program Files\nodejs 中(IIRC 如果您使用官方安装程序,这是默认设置)而不是像 [=14 这样的子目录=]如果你使用第三方工具安装nodejs可能会出现这种情况。

在你的工作中 dir C:\Program Files\nodejs 的输出应该像这样:

    Directory: C:\Program Files\nodejs


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----          6/5/2021   9:10 PM                node_modules
-a----         5/11/2021   5:44 PM           3032 install_tools.bat
-a----         5/11/2021   6:03 PM       56742536 node.exe
-a----         4/27/2020   8:13 PM            702 nodevars.bat
-a----         4/27/2020   8:13 PM           8997 node_etw_provider.man
-a----         5/11/2021   5:44 PM            930 npm
-a----         5/11/2021   5:44 PM            483 npm.cmd
-a----         5/11/2021   5:44 PM            922 npx
-a----         5/11/2021   5:44 PM            539 npx.cmd

您还需要检查您的 PathExt 变量包括 .exe(执行 node)和 .cmd 执行(执行 npm ).默认情况下就是这种情况,因此如果您没有修改 PathExt.

,则无需执行任何操作

或者,您可以使用 npm 的完整路径,包括 .cmd 扩展名:

script:
  - 'C:\Progra~1\nodejs\npm.cmd -v'