windows Github操作和窗口:使用Cygwin bash而不是git-bash

7ajki6be  于 2023-02-25  发布在  Windows
关注(0)|答案(1)|浏览(244)

我正在使用运行在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)中的特定步骤(或所有步骤)?

avwztpqn

avwztpqn1#

使用shell配置Cygwin,如下所示:

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

对于所有的步骤,使用defaults.run。然而,Cygwin没有预装在Windows runner(20192022)中,至少对于安装Cygwin的一个步骤,你必须指定一个不同的shell,就像你在工作流中已经做的那样。
对于每个步骤的shell配置,您可以使用jobs.<job_id>.steps[*].shell
此操作(https://github.com/marketplace/actions/install-cygwin)可能有助于安装Cygwin,而不是自己安装。

相关问题