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