2012-08-07 46 views
6

我们正在使用的TeamCity作为CI服务器,我们一直在思考如何实现我们的版本发布的方法是安全的(人为错误,即最小的机会)从版本文件更新版本号,而且还需要尽可能少的努力。到目前为止,以下似乎是最合理的:TeamCity的阅读和

  1. 创建版本文件(或使用assemblyinfo.cs)。版本信息将采用格式....此文件将被检入到我的VCS中。
  2. 运行一个TeamCity的构建
  3. TeamCity的读取来自步骤1中的版本的文件,挑选出对应的TeamCity构建参数每个单独的号码和集(这样我就可以在以后使用它们的东西,如创建的NuGet包和标签)
  4. TeamCity会自动增加最终的“构建计数”值。
  5. 的TeamCity保存新版本的信息回版本的文件(用更新的“建立计数”)
  6. 的TeamCity然后通过我的构建其余步骤运行,建立档案,运行单元测试,设置正确的程序集版本等。
  7. TeamCity的最后检查文件回VCS

我们相信这样做,让是我们应该要做一个旧版本的修复,那么该版本号将是正确的,TeamCity的可以简单的好处使用旧版本文件,并像往常一样递增构建计数。这确实假设我们正在更新我们的主要/次要/补丁版本。希望这将与TeamCity的7.1的即将发布的功能,让你选择通过自定义生成对话框建立其分公司的工作很好。

从我已经阅读到目前为止,这些操作应该可以在TeamCity中进行,但我们正在寻找最简单的方法来解决这个问题,因为我们只是一个双人装,而且我们不能承诺投入大量时间成为Nant或powershell的专家,但只能发现它可能无法达到我们想要的水平。

所以我想总结一下我的问题如下:

  1. 是我的建议可能吗?
  2. 如果是,那么最简单的使用给予我有限南特的体验的最佳工具,PowerShell的等(即这是最快捷的学习的人,其命令行脚本经验一直延伸到简单的DOS操作和一点的VBScript )

任何帮助是极大的赞赏。

回答

9

关于第一个问题:是的,这是可能的:

  1. 添加git的(.svn文件,.hg等)目录VCS规则
  2. 在生成脚本
  3. 阅读版本号的TeamCity(命令行跑步者)以你最喜欢的脚本语言进行编写并加以改进。在你最喜欢的脚本语言,通过在版本的文件interaction protocol
  4. 更新版本号
  5. 集版本号
  6. 执行您打造步骤
  7. 进行提交和推送,你可以因为你已经有git的(.svn文件。hg等)目录在最后一步构建目录

对不起,但我不能回答你的第二个问题,因为我不知道任何适当的Windows工具。在Linux上我会使用bash。

+0

感谢您的输入,我只是在等人帮助现在适当的工具。 – 2012-08-08 13:46:21

+1

对于编写脚本的工具,我建议使用powershell。 TeamCity对它有很好的参与者,所以你可以定义一个带参数的脚本,然后使用TeamCity变量来通过这些参数: 一个脚本启动“param($ defaultBranchVersion)” 并将“脚本参数”设置为%system.BranchVersion% 这对我来说很好。 – Graham 2014-06-04 10:50:17