如何在Teamcity Windows代理上运行shell脚本?

8ljdwjyq  于 2023-02-09  发布在  Shell
关注(0)|答案(3)|浏览(202)

我们曾经使用Jenkins作为我们的CI工具,我可以在Jenkins windows slave中运行shell脚本,步骤是:
1.在Windows从机上安装cygwin
2.在Jenkins中添加步骤作为shell脚本
3.添加“导出路径=/cygdrive/c/dev/tools/cygwin/bin:$PATH“作为第一行
我就可以在Jenkins中执行任何shell脚本。
现在我们需要移动到团队城市,我发现上面的步骤对团队城市不起作用。
当我运行“命令行”并将第一行设置为“export PATH=/cygdrive/c/dev/tools/cygwin/bin:$PATH”时,它给我一个错误,因为“”export“不被识别为内部或外部命令”。
有什么办法可以解决这个问题吗?我不想把shell脚本重写到cmd中。

xxslljrj

xxslljrj1#

很有可能你已经用Git Bash在代理上安装了Git。下面是我如何在不修改PATH变量的情况下运行npm命令

"C:\Program Files\Git\bin\bash.exe" -c "cd Source && npm install && npm run build"
tmb3ates

tmb3ates2#

使用此命令,您可以运行shell/bash命令:-“C:\Program Files\Git\bin\bash.exe”-c“cd源代码&& npm安装&& npm运行构建”
在Powershell中,如果您想运行bash脚本:
& 'C:\程序文件\Git\bin\bash.exe'.\构建. sh

zbsbpyhn

zbsbpyhn3#

这个问题很容易解决,当然错误不是来自Cygwin,而是来自CMD,export命令只在Bash脚本中有意义;CMD不知道该怎么处理它。
您需要做的只是向CMD指定脚本应该使用Cygwin的命令解释器(bash)运行,因此您可以指定bash可执行文件和脚本的长路径,如下所示

C:\dev\tools\cygwin\bin\bash D:\myscript.sh

或者你可以把cygwin目录的路径添加到你机器的PATH变量中。你可以通过改变系统设置并把路径附加到那里来完成这个操作,或者你可以把它作为你上面脚本的一部分来完成这个操作:

# this is not necessary if you have already changed the System Variable to include the path
set PATH=C:\dev\tools\cygwin\bin;%PATH%

bash D:\myscript.sh

相关问题