是否可以将 Jenkins 作业配置为忽略某些签入?



我根本没有使用ANT,所以提议的副本确实回答了关于Jenkins的问题。

我正在开发一个构建脚本,该脚本将增加程序的版本号。为此,将签出版本文件,计算并写回下一个版本号,然后签入。

我突然想到,这将触发无休止循环中的另一个构建。当我们使用 TFS 生成时,我们可以在签入注释中放置一个字符串,例如***NOCI***或其他内容,并且该签入将被忽略并且不会触发新的生成。

Jenkins 是否有任何这样的选择或我可以应用自己的技术来解决这个问题?

我正在使用 TFS 插件访问我的 SCM。

Subversion SCM 插件允许您指定在轮询新版本时将排除的路径。还可以将 Git SCM 配置为排除某些区域。

通过排除包含版本号的文件,您将能够避免观察到的恶性循环。

由于您无法遮盖或.tfignore版本控制文件...您可以使用 NOCIOption 属性,并在注释中传入它的标志。

您将在 TFS 中设置 SyncWorkspace 工作流活动的 NOCIOption 属性,并在版本更改期间,在签入的注释中传递"****NO_CI***"标志。这有点黑客攻击,如果您使用GlobalAssemblyInfo.cs版本控制,而是在整个项目中链接,则可以避免。

我建议不要使用您的"版本控制"文件,因为出于循环签入的原因,它从根本上是错误的。我建议使用GlobalAssemblyInfo.cs链接在整个.NET解决方案中,并在调用MSBuild之前对其进行标记。它就像一个冠军,用于在解决方案中的整个 .NET 项目中设置和链接版本控制。在解决方案中实现全局程序集信息,如此处的回答中所述。

您可以在"使用程序集属性的最佳实践是什么"中了解更多信息。您只需标记此文件(通过Powershell或其他方式(并调用MSBuild,您的版本将出现在所有.DLL中。

最新更新