这是与How to make SCM polling work with the Jenkins Workflow plugin相关的问题。该线程回答了如何在管道脚本中使用SCM轮询一旦 SCM轮询已启用但未涵盖如何启用 SCM轮询。
例如,如果您想使用mulit-branch pipeline plugin使用Jenkins文件自动创建作业,我不知道在作业中启用“轮询SCM”选项。这使得难以配置按需环境,例如创建从头开始设置作业的docker容器。因为您必须登录Jenkins并转到配置并在容器启动后选择“Poll SCM”选项。 Cloudbees提供template plugin来帮助解决此问题。
然而,Jenkins无法使用免费版本。在Jenkins的免费版本上有没有针对用户的解决方法或解决方案?
答案 0 :(得分:21)
如果您想使用多分支管道插件使用Jenkins文件自动创建作业,我不知道在作业中启用“轮询SCM”选项
也不需要。 Multibranch项目具有可配置的轮询间隔,用于整个分支索引,也可用作每个分支构建触发器,并且还将自动接收webhook。
答案 1 :(得分:10)
要回答如何启用SCM轮询的问题,您需要执行以下操作。
使用Pipeline语法生成器和“属性:设置作业属性”,您可以生成以下内容,以启用SCM轮询。
properties([pipelineTriggers([pollSCM('H * * * *')])])
然而,正如Jesse Glick指出Multibranch管道一样,您不需要启用SCM轮询。
答案 2 :(得分:2)
我正在考虑同样的问题。
如果您使用的是Github
或Bitbucket
等在线Git服务,我认为您可以使用他们的Webhooks
功能来解决此问题。我还没有能够测试解决方案,但它应该工作。
在Multibranch Pipeline
配置中,启用Trigger builds remotely
选项。
然后,您需要使用路径(如Jenkins配置描述中所述)在您的存储库上启用Github / Bitbucket Webhook:JENKINS_URL/job/test/build?token=TOKEN_NAME
答案 3 :(得分:0)
为了使我的Bitbucket连接到Web挂钩,我必须在声明性管道中添加以下内容:
pipeline {
stages {
stage('Initialize') {
steps {
//enable remote triggers
script {
properties([pipelineTriggers([pollSCM('')])])
}
//define scm connection for polling
git branch: BRANCH_NAME, credentialsId: 'my-credentials', url: 'ssh://git@stash.server.fqdn/stash/my-project.git'
}
}
}
}
这允许重建分支,而无需扫描整个 multibranchiverse 。当使用Bitbucket Project / Github Team-multibranch项目时,这特别有价值。一旦您有几个回购/分支,扫描可能需要几分钟。
通过直接挂钩,您可以更快地获得构建结果,并且没有任何副作用。
注意:在声明性管道中,必须使用脚本块包装属性调用。