我们的CI需要在许多环境中运行测试。
目前我们有8个任务,每个任务都从VCS中提取,构建工件,然后运行测试。
这是针对运行各种Android OS版本的Emulators进行Android测试。
我想更改此行为,以便我们具有以下结构:
1)构建任务
Does the VCS pull, builds the artifact for testing.
2)测试任务(1 ... n) -
Snapshot Dependency on Build Task Artifact.
Starts up the emulator for its version
Runs tests
Succeeds or fails.
我遇到的问题是构建任务似乎在完成之后将从VCS克隆的存储库(我们正在使用git)吹走。这意味着第2层任务无权访问此仓库中的gradle包装器。
有没有办法阻止repo在任务之间被吹走,这样我就可以重用那个位置而不为每个任务做一个新的克隆?
答案 0 :(得分:1)
将配置中的VCS checkout mode从Automatically on server
更改为Do not check out files automatically
。在根任务中,将结帐执行到其他任务可访问的文件夹中。通过这种方式,Teamcity不会触摸文件并随时将其删除。如果需要,您可以自己执行清理。
答案 1 :(得分:0)
我们在团队城市使用git时遇到了类似的问题。如果您需要在代理上执行与存储库相关的任何操作,则必须在代理上执行签出,然后确保数据,并且代理计算机上的repo元数据可用。
我记得TC会在代理上创建一个缓存,这样任何未来的构建只需要获取增量来获取更新的repo,所以第一次在每个代理上可能会很慢,但是不需要每次都这样做。