【发布时间】:2014-09-13 08:25:22
【问题描述】:
我正在尝试弄清楚如何配置 TeamCity 构建步骤以完成以下任务:
- 调用将 dev 分支合并到 test 分支的控制台应用程序(在 TFS)并在测试分支中手动修改一些文件 用于项目配置。这个过程完美无缺 并且已经过测试。另请注意,此步骤不会签入 合并文件或修改文件到测试分支。
- 此构建步骤将启动测试的实际解决方案构建 分支。 (这是 C#.NET,但我认为这并不重要)
- 此构建步骤处理任何 SQL 脚本的数据库迁移 添加。 (此步骤也已经过测试并且有效)
- 此步骤调用另一个控制台应用程序。即使前面的步骤失败,此步骤也会运行。如果构建成功,它将检查步骤 1 中的待处理更改,并进行构建部署。如果在上一步中构建失败,它将撤消第 1 步中的未决更改。
这似乎很简单,但我不知道第 1 步和第 2 步之间的交互。如果我在步骤 2 中使用服务器端签出,它将从服务器中提取源代码,而不使用我在步骤 1 中的更改。如果我在用户代理端签出,我的理解是它将创建一个新工作区并从中提取源代码服务器,再次没有使用我在步骤 1 中的更改。
有没有一种方法可以使用第 1 步中创建的待处理更改进行第 2 步构建?我能想到的唯一其他选择是在步骤 1 之后检查更改,如果构建失败,则在步骤 4 中回滚更改集。但在这种情况下,第 4 步如何知道要回滚的变更集?
我还有一个小问题,如何将构建成功作为参数传递给第 4 步?我查看了内置参数,但没有一个用于构建失败/成功的参数?
谢谢!
【问题讨论】:
标签: continuous-integration teamcity build-process teamcity-8.0 build-server