如何从 Cygwin 在 Jenkins 控制台上显示 bash 脚本执行
Posted
技术标签:
【中文标题】如何从 Cygwin 在 Jenkins 控制台上显示 bash 脚本执行【英文标题】:How to display bash script execution on Jenkins Console from Cygwin 【发布时间】:2019-12-30 16:52:38 【问题描述】:从 Jenkins 管道调用下面的 bash 脚本,但我没有在 Jenkins 控制台上看到脚本执行,有人可以建议如何在 jenkins 控制台上显示执行,在 cygwin 上运行的 bash 脚本执行(在 Windows 代理上) bat'call D:\cygwin64\bin\mintty.exe /usr/bin/bash -lic \"/home/test.sh\" '
【问题讨论】:
【参考方案1】:实现此目的的一种可能方法是转到“管理 Jenkins”、“配置系统”,并将“Shell 可执行文件”参数更改为您的 cygwin bash 地址。如您的示例所示,类似于 D:\cygwin64\bin\bash.exe。然后,在作业配置上,您可以选择“Build”、“Execute Shell”。您可以在其中粘贴您的 test.sh 脚本内容。像这样:
使用此配置,Jenkins 将使用您在配置中提供的 bash.exe 地址运行您在“执行 shell”屏幕中粘贴的任何内容。我相信这是在 Windows 上运行的 Jenkins 上执行 shell 脚本的最无缝方式。输出看起来几乎是 Linux 原生的:
【讨论】:
我无法在 Jenkins 主配置页面上添加 shell 可执行文件,因为我们配置了不同的代理,而且我没有特别看到 windows 代理从配置 cygwin bash 可执行文件。请指教。 这个配置是全局的。如果您也在主节点上安装 Cygwin,只需确保它们都安装在同一路径中。我所做的是始终将其保留在默认的 C:\cygwin64\bin\bash.exe 中。或者,您可以在每个节点上使用 Cygwin bin 路径创建一个系统环境变量,并将其用作“Shell 可执行文件”路径,例如 %CYGWIN_PATH%\bin\bash.exe 已将 D:\cygwin64\bin\ 添加到 windows 代理服务器上的系统变量路径中,但我仍需要在 Jenkins 上添加 D:\cygwin64\bin\bash.exe 在全局配置上配置系统? 如果你在系统环境变量中添加了D:\cygwin64\bin\,那么“Shell executable”路径可以是bash.exe。 Jenkins 可能会根据环境路径自行找到它,但我发现明确声明它总是更好。 好的,将在 Jenkins 主配置页面上的 shell 可执行字段上更新 D:\cygwin64\bin\bash.exe。谢谢。以上是关于如何从 Cygwin 在 Jenkins 控制台上显示 bash 脚本执行的主要内容,如果未能解决你的问题,请参考以下文章