我们正在使用 TeamCity 作为 CI 服务器,并且我们一直在考虑如何实现一种方法来对我们的版本进行版本控制,该方法既安全(即人为错误的可能性最小)又需要尽可能少的努力。到目前为止,以下似乎是最合乎逻辑的:
- 创建一个版本文件(或使用 assemblyinfo.cs)。版本信息将采用....格式。此文件将检入我的 VCS。
- 运行 TeamCity 构建
- TeamCity 从步骤 1 中读取版本文件,挑选出每个单独的数字并设置相应的 TeamCity 构建参数(这样我以后可以将它们用于创建 nuget 包和标记等事情)
- TeamCity 自动增加最终的“构建计数”值。
- TeamCity 将新版本信息保存回版本文件(使用更新的“构建计数”)
- 然后,TeamCity 会运行我的其余构建步骤、构建文件、运行单元测试、设置正确的程序集版本等。
- TeamCity 最终将文件检查回 VCS
我们相信这样做的好处是如果我们需要修复旧版本,那么版本号将是正确的,TeamCity 可以简单地使用旧版本文件,并像往常一样增加构建计数。这确实假设我们正在正确更新我们的主要/次要/补丁版本。这有望与即将发布的 TeamCity 7.1 功能很好地配合使用,该功能允许您通过自定义构建对话框选择要构建的分支。
从到目前为止我已经读过的内容来看,这些操作在 TeamCity 中应该是可能的,但我们正在寻找最简单的方法来解决这个问题,因为我们只是一个两人的装备,而且我们负担不起大笔投资大量时间成为 Nant 或 powershell 的专家,却发现它可能无法达到我们想要的效果。
所以我想总结一下我的问题如下:
- 我提议的可能吗?
- 如果是,那么考虑到我在 Nant、powershell 等方面的有限经验,最好的工具是什么(即对于命令行和脚本经验扩展到简单 DOS 操作和一点 VBScript 的人来说,这是最快的学习工具)
任何帮助是极大的赞赏。