我有一个Jenkins管道模板,它使用Subversion中的Jenkins文件。
Jenkins文件使用svn签出方法来签出实际的应用程序。(实际应用程序的svn url是从jenkins env变量传递的)
我需要执行实际应用程序的svn轮询,并在实际应用程序中发生变化时触发作业。
当我使用jenkins模板中的轮询选项时,它总是对Subversion中的JenkinsFile进行轮询。
有什么方法可以让我轮询真正的应用程序吗?
发布于 2017-03-06 17:21:26
我也有同样的问题。我的SVN url是参数化的,轮询函数不会计算=> build肯定触发的变量:-(
但这不是我想要的!
我真正的项目是在Jenkinsfile文件中签出的,所以一个变通方法应该是从轮询中排除Jenkinsfile文件存储库,但ui中没有选项...
编辑1个
我已经更新了我的插件,现在似乎可以工作了。你有什么版本的subversion-plugin?
我使用的是2.7.1
编辑2
不不是的。
我已经克隆了subversion-plugin-master,并在url不可达的情况下将功能从"BUILD_NOW“更改为"NO_CHANGES”。
使用修改后的版本,不会从参数化管道存储库触发构建。Jenkinsfile中的其他存储库被正确监控。
发布于 2017-03-05 06:00:33
使用freestyle job通过svn轮询(深度为空)您的实际应用程序。在此freestyle作业中,添加触发器以启动管道作业作为构建步骤。在你的管道工作中做真正的工作。
发布于 2017-03-23 01:00:08
在我的例子中,问题是我已经将crone语法配置为每5小时一次,而不是5分钟(这是一个愚蠢的事情)。
如果使用的是Pipeline作业,其中Pipeline DSL位于SCM远程。
通常,您可以使用crone语法在作业中配置轮询,并且可以从jenkins调用checkout方法,file.It将对您的实际应用程序进行轮询。(这是jenkins背后的魔力)
在此配置中,您没有在脚本(这里称为Jenkinsfile )中进行轮询,而是在作业配置中。因此,它的工作方式与任何其他作业一样:它检查使用cron表达式配置的SCM remote,当它检测到修改时,它从配置的remote中签出Pipeline脚本。
您可以按照下面的文档操作
https://stackoverflow.com/questions/42513365
复制相似问题