我正在使用运行在Windows上的Github操作。映像是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)中的特定步骤(或所有步骤)?
1条答案
按热度按时间avwztpqn1#
使用
shell
配置Cygwin,如下所示:对于所有的步骤,使用
defaults.run
。然而,Cygwin没有预装在Windows runner(2019或2022)中,至少对于安装Cygwin的一个步骤,你必须指定一个不同的shell,就像你在工作流中已经做的那样。对于每个步骤的shell配置,您可以使用
jobs.<job_id>.steps[*].shell
。此操作(https://github.com/marketplace/actions/install-cygwin)可能有助于安装Cygwin,而不是自己安装。