我有一个Jenkins管道模板,它使用Subversion中的Jenkins文件。
Jenkins文件具有svn checkout方法来检查实际应用程序。 (实际应用程序的svn url是从jenkins env变量传递的)
我需要对真实应用程序进行svn轮询,并在实际应用程序发生变化时触发作业。
当我在jenkins模板中使用轮询选项时,它总是在Subversion中轮询JenkinsFile。
有什么方法可以轮询真实应用程序吗?
答案 0 :(得分:0)
使用自由式作业通过svn轮询(深度为空)您的实际应用程序。在这个自由式作业中添加一个触发器来启动管道作业作为构建步骤。在管道工作中做真正的工作。
答案 1 :(得分:0)
我有同样的问题。我的SVN网址已参数化,并且轮询功能未评估变量=>肯定会触发构建: - (
但那不是我想要的!
我的真实项目是在Jenkins文件中检出的,所以一个解决办法就是从轮询中排除Jenkinsfile repo但是ui中没有选项......
修改1
我已经更新了我的插件,现在似乎正在运行。 你有什么版本的subversion-plugin?
我使用的是2.7.1
修改2
不,不。
我克隆了subversion-plugin-master并改变了函数" BUILD_NOW"到" NO_CHANGES"如果网址无法访问。
使用该修改版本,不会从参数化管道存储库触发构建。 Jenkins文件中的其他存储库被正确监视。
答案 2 :(得分:0)
在我的案例中的问题是我已经为每5个小时配置了crone语法而不是5分钟(这是一个愚蠢的事情)。
如果您正在使用Pipeline作业,那么Pipeline DSL位于SCM遥控器中。
通常,您可以使用crone语法在作业中配置轮询,并可以从jenkins文件中调用checkout方法。它将对您的实际应用程序进行轮询。 (它是詹金斯背后的魔力)
在此配置中,您没有在脚本内部进行轮询(此处称为Jenkinsfile),但在作业配置中。因此它可以像任何其他作业一样工作:它使用cron表达式检查SCM远程,当它检测到修改时,它会从配置的远程检出Pipeline脚本。
您可以按照以下文档进行操作