TFS 2017 构建版本号

3
我们已经从TFS 2013升级到了TFS 2017,我们正在尝试实现的一个功能是自定义构建编号。在2013年的旧方法中,我们有一个名为BuildVersion.XML的文件,它在第一步构建时会读取主要版本、次要版本和修订版本,并将构建命名为该构建号+修订版本号+1。然后它会检出并更新修订号,并提交新版本。我知道有些人会在更新AssemblyInfo时进行操作。问题在于,我们的代码不全是.NET应用程序。我们现在还有SSIS包、Cordova iOS/android应用程序、Angular网站、使用node.js的AWS Lambda函数等,这些都没有AssemblyInfo的概念。有没有简单的方法来实现这个功能呢?
2个回答

3

在TFS 2017的团队生成中,您可以完全按照相同的方式操作。

只需调用任何任务即可更新生成编号:

Write-Verbose -Verbose "##vso[build.updatebuildnumber]1.2.3.4"

添加PowerShell任务并添加内联脚本以从您的文件中读取并使用上述内容更新构建号。
然后,您可以编写其他脚本来根据您的需要对应用程序进行版本控制。
您可以在此处查看完整的日志命令列表: https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.md

好的,编写此命令将更新构建的构建号码?'''Write-Verbose -Verbose "##vso[build.updatebuildnumber]1.2.3.4"。但是我想增加数字并检出文件,更新值并再次检入。 - greektreat
@ greektreat 您可以在 PowerShell 脚本中执行所有这些步骤,然后从同一脚本中调用 build.updatebuildnumber。 - JamesQMurphy

1
你可以使用我的VSTS TFVC tasks与源代码控制进行交互,但我不建议这样做。我为那些正在做和你一样事情的客户构建了这些任务。
相比依赖源代码控制中的文件,更好的解决方案是将Build Definition中的BuildNumber传递给构建过程,让你的第一个步骤更新磁盘上的文件并使用正确的版本号运行构建。
如果在构建过程中操作文件并将其检入,你会面临多个构建代理的不一致编号风险,难以与并行构建和构建变量复用结合使用,而且执行Gated Checkins和Shelveset Builds会变得非常困难。此外,它限制了你未来转向Git的选择。

我们将无法传递构建编号。我们有许多开发人员(50+)在许多系统上工作,我们需要完全自动化。我还有另一个想法,是否可能自动更新我的构建变量?我创建一个变量Build.minor = 1,当我进行构建并成功后,将其更新为2以进行下一次构建? - greektreat
开发人员的数量并不重要,系统的数量也不是。您可以使用REST API查询先前的构建编号,并使用PowerShell进行操作。然后使用mrhinsh提供的魔术字符串编写新编号。但是,您仍然会遇到并行构建、门控构建、货架集构建等问题。 - jessehouwing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接