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

Jenkins作业是否可以配置为忽略某些签入?,jenkins,Jenkins,我根本不使用ANT,所以建议的复制品确实回答了关于Jenkins的这个问题 我正在编写一个构建脚本,它将增加程序的版本号。为此,将签出版本文件,计算并写回下一个版本号,然后签入 我突然想到,这将在一个无休止的循环中触发另一个构建。当我们使用TFS构建时,我们可以在签入注释中放入一个字符串,如***NOCI***或其他内容,该签入将被忽略,并且不会触发新构建 詹金斯有没有这样的选择,或者我可以运用什么技巧来解决这个问题 我正在使用TFS插件访问我的SCM。Subversion SCM插件允许您指定

我根本不使用ANT,所以建议的复制品确实回答了关于Jenkins的这个问题

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

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

詹金斯有没有这样的选择,或者我可以运用什么技巧来解决这个问题


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

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

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

因为您不能或.tf忽略您的版本控制文件…您可以在注释中使用,并为其传递标志

您将设置,并且在版本更改期间,在签入的注释中传递****NO_CI***标志。这是一种黑客行为,如果您使用GlobalAssemblyInfo.cs版本控制,而不是在整个项目中链接,则可以避免这种情况

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


你可以在这里了解更多。您只需通过Powershell或其他方式标记此文件并调用MSBuild,您的版本将出现在所有.dll中。

我根本没有使用ANT的可能副本,因此建议的副本确实回答了有关Jenkins的问题。是否回答了此问题?能否发布构建脚本的示例?我从未见过Jenkins在没有Ant的情况下工作过……额外的签入似乎是多余的……我想你需要看看这个:我强烈建议你使用Ant……它是Jenkins的粘合剂。@AussieJoe我在引发我问题的特定情况下使用了PowerShell脚本。我有超过一百个Jenkins的工作在没有ANT的情况下进行构建,所以这根本不是一个问题。实际上,我的问题是配置Jenkins在轮询SCM时忽略某些签入。这是在调用构建脚本之前,所以它与任何特定的构建脚本技术都没有关系。我看到了一些类似于其他SCM插件的选项。我使用的TFS插件没有这样的选项。可能唯一的方法是在脚本本身中编写行为代码,或者切换到其他SCM。这似乎不是Jenkins的核心功能。我读过关于NOCIOption的文章。当我们在TFS服务器上运行构建时,我们经常使用它。我看不出这对詹金斯有任何影响。我们已经在使用本文中描述的全局程序集信息文件。这很好,但是它仍然在解决方案文件夹中,所以它的签入仍然会触发构建。我最终使用了一种版本控制算法,该算法根据日期和时间设置构建编号的最后两段。我们只需在需要时签入之前手动更改前2个。例如,我签入1.1.*,然后在调用MSBuild之前替换*。