我目前正在配置存放在AWS中的Docker容器上的Jenkins服务器。
我正在使用BlueOcean来配置存储库。
现在,管道扫描存储库中的所有分支,以检测Jenkinsfiles,如果检测到更改,管道将自动在该分支上构建。我每5分钟扫描一次以检测变化。
但是,如果是随机特性分支,我不想自动运行生成和作业。我试图将自动触发的构建限制为仅在暂存和主分支中进行更改。
因此,我的问题是,如何/在哪里配置Jenkins GitHub管道,使其只在特定分支上构建,而不是扫描所有分支?
发布于 2018-10-16 04:45:28
多分支管道作业是您的朋友。
与其试图限制Jenkins首先轮询哪个分支,我在Jenkinsfile中所做的是每分钟的投票源代码控制:
triggers { pollSCM('* * * * *') }这将轮询每个分支,并创建一个作业,其中它在多分支管道作业配置中指定的位置和名称中找到Jenkinsfile。
边注 关于多分支管道中的唯一配置是:
多分支管道作业设置了一个附加的环境变量: BRANCH_NAME,它允许您在管道中有条件地执行如下操作:
script {
if( "${env.BRANCH_NAME}" == "integration" ) {
//Do something useful
}
}使用此方法,您还可以决定对投票事件不做任何操作。
发布于 2018-10-15 22:21:32
我猜你在使用github插件。我建议使用通用的Web钩子触发器插件- https://wiki.jenkins.io/display/JENKINS/Generic+Webhook+Trigger+Plugin在您的存储库上配置一个web钩子
这个插件很棒,可以轻松地提取传入webhook中的值,并在管道中使用这些值。为了前夫。您可以从web钩子的来源提取分支,并且只有当分支是staging或master时才能构建分支。
在我们的设置中,我们使用一个简单的作业‘web钩子触发处理器’,它从所有存储库读取传入的web钩子,并使用从web钩子提取的值触发下游管道。
发布于 2018-10-16 01:22:54
管道接受输入参数。因此,您可以创建一个名为分支的参数。
在管道中,您可以使用regex来匹配所需的分支。
https://stackoverflow.com/questions/52821516
复制相似问题