jenkins实现master变化时,才触发构建(过滤分支)
现状:现在是这样的,每个开发push时,都触发jenkins进行构建
期望:只有当代码被push到master时才进行构建
(根据使用的git平台)做这些配置需要先了解一些概念:
(github) pull request
(gitlab) merge request
理解 GitHub 的 Pull Request 和 GitLab 的 Merge Request 有区别吗?看这篇
https://cloud.tencent.com/developer/article/1341633
个人理解,其实pull request 和 merge request表达的意思都是一样的,只是在不同的平台,起了不同的名字
- GitHub、Bitbucket 和码云(Gitee.com)选择 Pull Request 作为这项功能的名称
- GitLab 和 Gitorious 选择 Merge Request 作为这项功能的名称
然后还要理解gitlab的工作流:

步入正题:
2种方式可以实现 只有master代码变化时才触发自动化测试
- 利用merge request: 当开发发送merger request给项目leader时(要求合代码),就进行构建
- 利用jenkins进行配置,只有当master代码产生push时,才进行构建
方式1:利用merge request方式:
step1:
打开gitlab仓库配置的webhook,勾选Merge request events的选项
我这边是已经配置过webhook了,如果还没有配置过,请参考这篇进行配置:
GitLab 自动触发 Jenkins 构建


step2:配置jenkins
打开项目配置
Builder triggers>>取消勾选Push Events 选项,然后把有关merge request events 的选项勾上(如果不去掉push events 当分支发生push时,jenkns还是会构建)

step3:测试配置结果
在gitlab 发送一个push的请求,可以看到jenkins已经不会构建了
再测试发送一个 merge request

发现jenkins已经在进行构建了

方式2:利用jenkins进行配置,只有当master代码产生push时,才进行构建,这个很简单
我们可以通过jenkins>>Builder triggers 配置正则匹配,只有当master分支发生改变时才会触发jenkins。
step1:打开项目配置
Builder triggers>>Advanced>>Allowed branches>>Filter branches by regex>>Target Branch Regex>>填写master>>保存配置

注意:这次要勾选 push events 
step2:测试配置结果
a.当开发在dev分支push时,jenkins不会再进行构建
b.当开发在 master push时,jenkins进行构建了
至此就实现了我想要实现的效果:只有master分支会触发jenkins进行构建
我遇到坑:
如果我使用方式2配置了过滤分支的正则表达式(同时勾选了push events ),gitlab发送请求的时候就会报错

造成这个问题的原因是,我的正则表达式写错了,晕~
应该是master 而不是*master

我参考的文章,谢谢前人zai树,让后人可以乘凉
配置github的pull request触发jenkins自动构建
jenkins定位master分支构建
配置GitHub pull request时jenkins自动构建
jenkins实现master变化时,才触发构建(过滤分支)的更多相关文章
- Jenkins触发构建
目录 一.简介 二.时间触发 定时触发 轮询代码仓库 三.事件触发 由上游任务触发 gitlab通知触发 四.通用触发接口 GWT 提取参数 触发某个具体项目 过滤请求值 控制打印内容 控制响应 一. ...
- 自动化部署-svn hook触发构建
目的 之前是通过轮询的形式,2分钟更新一次svn,即时性不高,现在想要实现提交代码时直接触发构建 方案 使用svn的服务器hook,当有代码提交时请求jenkins api实现构建 具体实现 1.je ...
- el-select和el-cascader的visible-change下拉框隐藏时触发相关事件(下拉框下拉显示时不触发)
原文:https://blog.csdn.net/CarryBest/article/details/79959389 今天做项目时,用elementUI框架,需要下拉框隐藏时出发某个函数,用了vis ...
- 使用Jenkins时,如果GIT_COMMIT无变化,跳过构建
使用Jenkins时,如果GIT_COMMIT无变化,跳过构建 使用插件: conditional-buildstep A buildstep wrapping any number of ot ...
- Jenkins教程(七)实现 GitLab 提交/合并代码触发构建
楔子 最近公司推行统一构建平台(基于 Jenkins + Kubernetes 插件创建 slave),原来部门自建的 Jenkins 不让用了. 迁移上统一构建平台的最大阻力是前端模块发布的问题: ...
- Gitlab+Jenkins学习之路(十一)之Jenkins自动触发构建和发布
思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-- ...
- 【06】Jenkins:Gitlab 自动触发构建以及钉钉通知
写在前面的话 在某些时候,我们希望能够实现这样一个功能,当用户提交东西到 gitlab 上的时候,希望它能够自动触发构建,发布到我们需要的环境. 目前我们内部有做类似的需求:产品提交原型到 gitla ...
- Jenkins使用四:Jenkins创建任务,实现代码有改动时,自动构建
新建任务 指定在哪台节点运行 添加要监控的git地址和使用账号,此账号为设置节点时配置公私钥时设置的ssh登录账号 设置检查代码是否有变更的频率,每三分钟检查一次,如果检查到有变更就构建 修改文件再提 ...
- CICD | Jenkins & Gitlab集成:WebHook触发构建
在上一篇博客中,我们学习了Jenkins的搭建和插件+流水线的基本使用方法,Jenkins极大地提升了部署效率. 最近想学习一下如何集成GitLab webhook,实现进一步解放双手,目标: 推送( ...
随机推荐
- urllib.parse解析链接
1. urlparse() 解析链接,注意,返回值比3多一个params的属性 from urllib.parse import urlparse result = urlparse('http:// ...
- package和import语句_5
J2SDK中主要的包介绍 java.lang—包含一些Java语言的核心类,如String.Math.Integer.System和 Thread,提供常用功能. java.awt—包含了构成抽象 ...
- ExcelVBA 操作putty
Private Sub login(ip As String, userName As String, password As String) Dim TaskID As Long '设置进程id p ...
- CSS动画划入划出酷炫
HTML插入 <!DOCTYPE html> <html class="no-js iarouse"> <head> <meta char ...
- 2019 Multi-University Training Contest 1 - 1004 - Vacation - 二分 - 思维
http://acm.hdu.edu.cn/showproblem.php?pid=6581 一开始想了好几个假算法.但是启发了一下潘哥,假如时间知道的话就可以从头开始确定各个车的位置.那么直接 \( ...
- 开源企业IM-免费企业即时通讯-ENTBOOST V2014.183 Linux版本号正式公布
版权声明:本文为博主原创文章,欢迎转载,转载请尽量保持原文章完整,谢谢! https://blog.csdn.net/yanghz/article/details/37807975 ENTBOOST, ...
- KindEditor 文本编辑器
官网:http://kindeditor.net/docs/usage.html 目前支持ASP.ASP.NET.PHP.JSP.
- NavBarControl控件 2015-07-23 16:56 2人阅读 评论(0) 收藏
NavBarControl控件 1. 新建一个windows窗体应用程序项目 2. 在工具箱中的Navigation& Layout选项卡下找到NavBarControl, ...
- socket - Linux 套接字
总览 #include <sys/socket.h> mysocket = socket(int socket_family, int socket_type, int protocol) ...
- Codeforces Round #394 (Div. 2) - A
题目链接:http://codeforces.com/contest/761/problem/A 题意:给定a个偶数,b个奇数,问是否能构成奇偶相间的阶梯.思路:a和b相差小于等于1即可构造出来.特判 ...