Github Actions 和 Windows:使用 Cygwin bash 而不是 git-bash

问题描述 投票:0回答:1

我正在使用在 Windows 上运行的 Github Actions。该图像是

windows-2022
并且 Cygwin 安装了工作流程的一部分。据我所知,Windows 映像已经内置了 git-bash。

Cygwin 安装如下:

- name: "Windows: Cygwin download"
  if: runner.os == 'Windows'
  run: |
    Invoke-WebRequest 'https://cygwin.com/setup-x86_64.exe' -OutFile 'setup-x86_64.exe'

- name: "Windows: Cygwin setup"
  if: runner.os == 'Windows'
  # The setup does not complete properly in powershell for some reason
  shell: cmd
  run: .\setup-x86_64.exe --quiet-mode --site http://cygwin.mirror.constant.com --symlink-type=sys --packages mingw64-i686-binutils=2.37-2,mingw64-x86_64-binutils=2.37-2,curl,diffutils,git,m4,make,mercurial,mingw64-i686-gcc-core,mingw64-i686-gcc-g++,mingw64-x86_64-gcc-core,mingw64-x86_64-gcc-g++,patch,perl,rsync,unzip

当我为步骤指定

shell: bash
时,我发现无法运行任何 Cygwin 工具。
bash --version
报告:

GNU bash, version 5.2.12(1)-release (x86_64-pc-msys)

C:\\cygwin64\\bin\\bash --version
报道:

GNU bash, version 4.4.12(3)-release (x86_64-unknown-cygwin)

所以显然我正在运行

git-bash
而不是Cygwin版本。

如何让 GHA 在 Cygwin 版本的 bash(而不是 git-bash)中执行特定步骤(或全部)?

windows bash cygwin github-actions
1个回答
2
投票

使用

shell
配置 Cygwin,如下所示:

shell: C:\cygwin64\bin\bash.exe --login '{0}'

对于所有步骤,请使用

defaults.run
。但是,Cygwin 并未预安装在 Windows 运行程序中(20192022),至少对于安装 Cygwin 的一个步骤,您必须指定一个不同的 shell,就像您在工作流程中已经执行的那样。

对于每步 shell 配置,您可以使用

jobs.<job_id>.steps[*].shell

此操作 (https://github.com/marketplace/actions/install-cygwin) 可能有助于安装 Cygwin,而不是自己安装。


更新

正如koppor评论中提到的,您也可以使用此官方操作来安装Cygwin:

© www.soinside.com 2019 - 2024. All rights reserved.