Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多个TeamCity代理-代码签出在哪里_Teamcity - Fatal编程技术网

多个TeamCity代理-代码签出在哪里

多个TeamCity代理-代码签出在哪里,teamcity,Teamcity,我在构建服务器上有一个默认代理,当它运行时,它会签出服务器文件夹中的代码并运行构建。然后我在另一台机器(测试服务器)上安装了另一个teamcity构建代理 TeamCity文档说 “为了能够获取项目源,构建代理不需要 需要有任何预先配置的版本控制系统 构建代理不需要在其上安装任何VCS系统 源代码是在服务器端签出的。因此,减少了工作量 需要维护公司的基础设施。” 源代码在服务器端签出-如果运行安装在测试服务器上的代理,服务器上的另一个新文件夹中是否会有代码签出?或者,它是否会使用相同的现有代码签

我在构建服务器上有一个默认代理,当它运行时,它会签出服务器文件夹中的代码并运行构建。然后我在另一台机器(测试服务器)上安装了另一个teamcity构建代理

TeamCity文档说

“为了能够获取项目源,构建代理不需要 需要有任何预先配置的版本控制系统

构建代理不需要在其上安装任何VCS系统 源代码是在服务器端签出的。因此,减少了工作量 需要维护公司的基础设施。”


源代码在服务器端签出-如果运行安装在测试服务器上的代理,服务器上的另一个新文件夹中是否会有代码签出?或者,它是否会使用相同的现有代码签出文件夹(服务器上的默认代理正在使用的文件夹)运行构建?

前者是正确的:TeamCity将通过中央TC Web服务器(如果使用服务器端签出)从源代码管理中为每个VCS根/构建代理组合签出一份干净的代码副本。后续生成是使用源的缓存副本还是再次从源代码管理中检索取决于许多因素,包括:

  • 是否在生成配置中启用了清除签出
  • TC是否在不相关的构建中清理源以释放磁盘空间
  • 构建历史清理规则(这肯定会清理工件/以前的构建,但不确定源)
  • 其他像我们这样的纯粹道德无法理解的TC内部规则

因此,要澄清的是,在使用服务器端签出时,代理始终依赖服务器代表其从源代码管理中检索代码,但代理自己负责管理源缓存。

重复您所说的。。“前者是正确的:TeamCity将从源代码管理中为每个VCS根/构建代理组合检查一份干净的代码副本,…”——在新创建的文件夹中?我需要知道是否为每个VCS根/构建代理组合创建了新文件夹。如果有5个构建远程代理,那么服务器上有5个代码副本?啊,我明白你的意思了。不,我相信TC只在服务器上保留一个临时副本,只要它将代码传递给代理,它就会删除它(不过我需要确认一下),请问您的驾驶问题是什么?磁盘使用率是一回事,但我想知道远程构建代理在概念上是如何工作的。您是说我的远程代理将处理服务器代码的单个副本(从TFS签出)。但是在远程机器上安装远程代理后,我看到buildagent在远程机器上创建了一个包含“work”子文件夹的文件夹?不确定为什么需要这样做,当代理使用服务器副本时。这不是我的意思,也许我不清楚。构建代理不直接在服务器副本上工作,而是获取源的本地副本,这样代理就不需要在每次请求构建时不断传输所有代码。在生成代理和TC服务器之间的连接速度较慢的情况下,这一点尤为重要。