如何让 GitLab Runner 在 Windows 上与 Bash 一起工作

How to get GitLab Runner to work with Bash on Windows

我正在尝试将我们的 GitLab 实例中的 CI/CD 设置为 Windows 10 机器上的 运行。

我已经在 windows 系统上为 Windows(包括 Git Bash)安装了 Git。

然后我根据instructions given here注册运行ner。

然后我调整了 config.toml 文件以使用 bash shell,方式如下:

[[runners]]
  name = "DESKTOP-R9R6OV2"
  url = "https://git.mycompany.com/"
  token = "ozaxN3XoJm2sEPzc3BPx"
  executor = "shell"
  shell = "bash"
  builds_dir="/C/Build/"

根据这篇文章 - GitLab CI and Git Bash - 我创建了一个 bash.cmd 文件,其中包含

@"C:\Program Files\Git\usr\bin\bash.exe" -l

我还确保 C:\Program Files\GitC:\Program Files\Git\usr\bin 在全局路径定义中,因为 运行ner 安装在系统管理员帐户中。

管道启动,但似乎挂起:

Running with gitlab-runner 14.7.0 (98daeee0)
  on DESKTOP-R9R6OV2 ozaxN3Xo
Preparing the "shell" executor
Using Shell executor...
Preparing environment

进程等待 Preparing environment

我查看了事件查看器日志,没有任何消息解释正在发生的事情。

所以我的问题是,要让 bash shell 在 Windows 10 系统上的 GitLab Runner 中工作,我还需要做什么?

是否需要设置特殊的系统权限?

这个场景的有效答案是使用 windows powershell 然后从那里启动 git bash shell。

因此,在您的 gitlab-ci.yml 中,添加以下 powershell 命令:

- New-Alias -Name gitBash -Value "$Env:ProgramFiles\Git\bin\bash.exe"
- gitBash -c <name of your bash file>

这将在 git bash 环境中 运行 您的 bash 文件。

这意味着您的 config.toml 文件必须这样设置:

[[runners]]
    ...
    executor = "shell"
    shell = "powershell"