curl不会被识别为内部或外部命令。 Curl安装在本地,在命令提示符下工作正常。
构建日志结果:
[20:05:35]Step 2/2: Command Line
[20:05:35][Step 2/2] Starting: C:\BuildAgent\temp\agentTmp\custom_script7047202395618427524.cmd
[20:05:35][Step 2/2] in directory: C:\BuildAgent\work\376652cbd18bb804
[20:05:35][Step 2/2] 'curl' is not recognized as an internal or external command,
[20:05:35][Step 2/2] operable program or batch file.
[20:05:35][Step 2/2] Process exited with code 1
[20:05:35][Step 2/2] Step Command Line failed
卷曲命令
curl -v --request PUT %teamcity.serverUrl%/httpAuth/app/rest/builds/id:%teamcity.build.id%/pin
-u admin:admin
答案 0 :(得分:4)
扩展其他答案,你需要告诉TeamCity curl在哪里。
但是,您可以通过将curl的路径附加到env.Path变量来通过TeamCity执行此操作,而这样做的好处是您不必更改每个构建代理上的PATH
变量。 / p>
env.Path
。对于值,您需要指定curl的路径并保留现有值;类似的东西:
c:\path\to\dirWithCurl;%env.Path%
如果您想证明它有效,请添加测试构建步骤;只需执行以下操作并查看结果:
echo %env.Path%
curl --help
我探讨了TeamCity最近如何处理附加值...请参阅this answer以获取太多信息和MySql示例。看看编辑#2,但你需要的基础是上面的。
答案 1 :(得分:0)
你需要:
a)像anovitskiy建议并将其添加到路径中。但是然后重新启动构建代理以使其获取新路径。
或
b)而不是将curl
做C:\Path\To\Location\of\curl.exe
作为命令。
答案 2 :(得分:0)
有同样的问题。并发现了这一点。
由于Win 10 1803 Curl
是系统的一部分,位于%windir%\System32
但是Win64上的TeamCity Agent在此文件夹中找不到任何可执行文件
感谢this answer,它显示为Windows问题(More detais here)
因此,我修改了脚本以在本地和构建步骤中运行:
IF EXIST %windir%\Sysnative\curl.exe (
%windir%\Sysnative\curl.exe -X GET "http://example.com"
) ELSE (
curl -X GET "http://example.com"
)