我们正在使用TeamCity作为CI服务器,我们一直在考虑如何实现一种安全版本化方法(即人为错误的机会最小),但这也需要尽可能少的努力。到目前为止,以下似乎是最合乎逻辑的:
我们认为以这种方式做事的好处是我们需要修复旧版本,然后版本号将是正确的,TeamCity可以简单地使用旧版本文件,并像往常一样增加构建计数。这确实假设我们正在更新我们的主要/次要/补丁版本。这有望与TeamCity 7.1即将发布的功能很好地配合使用,该功能允许您通过自定义构建对话框选择要构建的分支。
从我到目前为止已经阅读过的内容中,这些操作应该可以在TeamCity中进行,但是我们正在寻找最简单的根本来解决这个问题,因为我们只是一个双人装,我们负担不起投入大量时间成为Nant或powershell的专家,却发现它可能无法满足我们的需求。
所以我想总结一下我的问题如下:
非常感谢任何帮助。
答案 0 :(得分:9)
关于你的第一个问题:是的,这是可能的:
很抱歉,但我无法回答您的第二个问题,因为我不知道任何适合Windows的工具。在linux上我会使用bash。
答案 1 :(得分:0)
使用 PowerShell 运行器类型
添加构建步骤将脚本字段设置为源代码
在 ScriptSource 字段中输入以下内容:
# Get AssemblyInfo file's contents
$file = "GlobalAssemblyInfo.cs"
$contents = get-content $file -Raw
# Regex to get the version number from AssemblyInfo file contents
$regex = new-object System.Text.RegularExpressions.Regex ('(^\s*\[\s*assembly\s*:\s*((System\s*\.)?\s*Reflection\s*\.)?\s*AssemblyVersion(Attribute)?\s*\(\s*@?\")(?<version>.*?)(\"\s*\)\s*\])', [System.Text.RegularExpressions.RegexOptions]::MultiLine)
# Get the version number
$version = $regex.Match($contents).Groups["version"].Value
# Update TeamCity buildNumber parameter using stdout
echo "##teamcity[buildNumber '$($version)']"