有时,我的一个Windows构建代理会收到“无法启动”消息,因为它无法清除以前版本的checkout目录。这通常是因为MSBuild进程仍然挂在文件句柄上。
[Updating sources] Failed to perform checkout on agent: '"C:\Program Files\Git\bin\git.exe" clean -f -d -x' command failed.
exit code: 1
stdout: Removing bin/
[...]
stderr: warning: failed to remove bin/prod/otherDirectory
warning: failed to remove bin/prod/yetAnotherDirectory
对此的一个解决方案是使用Swabra在下一个构建开始之前终止进程,如described in this answer。
我想尝试的另一件事是自动重新添加“无法启动”构建到队列并强制它在另一个代理上运行。问题代理通常会在几分钟内自行解决,因此立即在另一个代理上启动构建是一个很好的临时解决方案。
是否有可能以这种方式再次向队列中添加“无法启动”构建?
答案 0 :(得分:1)
TeamCity有一个满足我要求的Retry Build Trigger。它不允许指定一个代理来运行构建,但是" Seconds要等待"参数和我的构建队列的性质减轻了这一点。
答案 1 :(得分:0)
关于如何手动指定运行构建的代理的问题是什么?如果是,则有自定义构建功能,允许您从下拉列表中选择所需的代理。只需点击“运行”旁边的“...”按钮。