现状:现在是这样的,每个开发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自动构建

gitlab自动化触发jenkins构建项目

jenkins实现master变化时,才触发构建(过滤分支)的更多相关文章

  1. Jenkins触发构建

    目录 一.简介 二.时间触发 定时触发 轮询代码仓库 三.事件触发 由上游任务触发 gitlab通知触发 四.通用触发接口 GWT 提取参数 触发某个具体项目 过滤请求值 控制打印内容 控制响应 一. ...

  2. 自动化部署-svn hook触发构建

    目的 之前是通过轮询的形式,2分钟更新一次svn,即时性不高,现在想要实现提交代码时直接触发构建 方案 使用svn的服务器hook,当有代码提交时请求jenkins api实现构建 具体实现 1.je ...

  3. el-select和el-cascader的visible-change下拉框隐藏时触发相关事件(下拉框下拉显示时不触发)

    原文:https://blog.csdn.net/CarryBest/article/details/79959389 今天做项目时,用elementUI框架,需要下拉框隐藏时出发某个函数,用了vis ...

  4. 使用Jenkins时,如果GIT_COMMIT无变化,跳过构建

    使用Jenkins时,如果GIT_COMMIT无变化,跳过构建    使用插件: conditional-buildstep A buildstep wrapping any number of ot ...

  5. Jenkins教程(七)实现 GitLab 提交/合并代码触发构建

    楔子 最近公司推行统一构建平台(基于 Jenkins + Kubernetes 插件创建 slave),原来部门自建的 Jenkins 不让用了. 迁移上统一构建平台的最大阻力是前端模块发布的问题: ...

  6. Gitlab+Jenkins学习之路(十一)之Jenkins自动触发构建和发布

    思路图: 一.下载gitlab plugin jenkins-->系统管理-->管理插件-->下载并安装gitlab plugin 二.配置gitlab认证 路径:Jenkins-- ...

  7. 【06】Jenkins:Gitlab 自动触发构建以及钉钉通知

    写在前面的话 在某些时候,我们希望能够实现这样一个功能,当用户提交东西到 gitlab 上的时候,希望它能够自动触发构建,发布到我们需要的环境. 目前我们内部有做类似的需求:产品提交原型到 gitla ...

  8. Jenkins使用四:Jenkins创建任务,实现代码有改动时,自动构建

    新建任务 指定在哪台节点运行 添加要监控的git地址和使用账号,此账号为设置节点时配置公私钥时设置的ssh登录账号 设置检查代码是否有变更的频率,每三分钟检查一次,如果检查到有变更就构建 修改文件再提 ...

  9. CICD | Jenkins & Gitlab集成:WebHook触发构建

    在上一篇博客中,我们学习了Jenkins的搭建和插件+流水线的基本使用方法,Jenkins极大地提升了部署效率. 最近想学习一下如何集成GitLab webhook,实现进一步解放双手,目标: 推送( ...

随机推荐

  1. python学习第二十七天函数的return返回值

    python函数返回值用的return ,函数遇到return 结束函数运行过程,终止程序,不论后面还有多少个输出,都终止本次函数,所有一定要慎重用return 1,函数return用法 def go ...

  2. weBDrriver API接口方法小记

    3.2.1 输入框(text field or textarea) 找到输入框元素:WebElement element = driver.findElement(By.id("passwd ...

  3. NavBarControl控件 2015-07-23 16:56 2人阅读 评论(0) 收藏

    NavBarControl控件 1.      新建一个windows窗体应用程序项目 2.      在工具箱中的Navigation& Layout选项卡下找到NavBarControl, ...

  4. SQL 查询 group by 的使用注意点

    今天用SQL Server尝试实现一个SQL语句的时候,报了如标题所示的错误,通过在百度里面搜索,并亲自动手实现,终于发现问题所在,现在把它记录下来. 语句如下:     select [OrderI ...

  5. MVC模型的基本原理及实现原理

    [转载]MVC架构在Asp.net中的应用和实现 摘要:本文主要论述了MVC架构的原理.优缺点以及MVC所能为Web应用带来的好处.并以“成都市信息化资产管理系统”框架设计为例,详细介绍其在Asp.n ...

  6. js 柯里化、深拷贝、浅拷贝

    curry const sum = (a, b, c, d) => a + b + c + d const curry = fn => (judge = (...args) => a ...

  7. 20180305-Python中迭代器和生成器

    一.迭代器 迭代器是访问集合元素的一种方式.迭代器从访问到集合的第一个元素开始访问,直到所有元素被访问结束.而且迭代器只能往前访问,不能后退.另外迭代器的另一个优点,不会事先准备好访问的集合的所有元素 ...

  8. 关于springmvc 整合jackson报错问题

    spring mvc 在整合jackson中报错如下 Context initialization failed org.springframework.beans.factory.BeanCreat ...

  9. pwn的一些技巧与总结

    原文地址:https://github.com/Naetw/CTF-pwn-tips 目录 溢出 在gdb中寻找字符串 二进制服务 找到libc中特定函数的偏移地址 Find '/bin/sh' or ...

  10. VS基本教程

    首先打开vs,点击工具栏,文件----新建----项目 然后依次选择Visual C++----空项目-----命名---项目存放路径 接下来在解决方案资源管理器中选中源文件,右键----添加---- ...