【发布时间】:2014-10-24 03:50:38
【问题描述】:
我们的 CI 需要在多个环境中运行测试。
目前我们有 8 个任务,每个任务都从 VCS 中提取,构建工件,然后运行测试。
这适用于在运行各种版本的 Android 操作系统的模拟器上进行 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 层任务无权访问此 repo 中的 gradle 包装器。
有没有办法阻止 repo 在任务之间被吹走,这样我就可以重复使用该位置而无需为每个任务进行新的克隆?
【问题讨论】:
-
查看配置的版本控制设置页面上的
VCS Checkout Mode选项。默认情况下它是Automatically on server,这意味着它会检查服务器上的数据并仅将项目数据(无 git 数据)发送给代理。我完全在这里猜测,但这可能与它有关。尝试Auto on agent或使用do not check out files选项自行处理。 confluence.jetbrains.com/display/TCD8/VCS+Checkout+Mode -
是的,我做了不签出文件选项,这会停止新下载,这很好,但问题是在依赖任务(测试任务)中,repo 不再在机器上了。可能是它没有找到正确的目录,但我认为它的目录不存在。
-
@DaveZych Ahhh 所以你说的是根任务,禁用自动下载,包括那里的结帐说明。运行构建,然后在依赖任务中将根设置为原始任务存储库创建的结果?我刚刚阅读了您提供的文档,这似乎是一种可行的可能性。
-
@DaveZych 看起来它会起作用。如果您想将其设置为答案,我会接受。谢谢!
-
很高兴你能成功!我添加了我的答案。如果您认为更多信息会有所帮助,我可以添加。
标签: android git continuous-integration teamcity