现状:现在是这样的,每个开发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. HTML5-Classlist样式操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Django CORS跨域资源共享

    1,什么是CORS ​ 允许浏览器向跨源(协议 + 域名 + 端口)服务器发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制 2,特点 ​ 1,浏览器自动完成(在请求头中加入特 ...

  3. 简单谈谈Netty的高性能之道

    传统RPC 调用性能差的三宗罪 网络传输方式问题:传统的RPC 框架或者基于RMI 等方式的远程服务(过程)调用采用了同步阻塞IO,当客户端的并发压力或者网络时延增大之后,同步阻塞IO 会由于频繁的w ...

  4. 安装go版本

    下载地址(官网):https://golang.org/dl/ 下载地址(国内):https://dl.gocn.io/ 想编译GO,必须先有一个GO的编译器. 创建GO的编译器:[root@node ...

  5. centos 7.2 查看时间,精确到毫秒级别

    [root@ ~]# date +'%x %X.%N' 2019年08月06日 11时25分13秒.193666438 [root@commonTest ~]# date --help 用法:date ...

  6. CodeChef A String Game(SG)

    A String Game   Problem code: ASTRGAME   Submit All Submissions   All submissions for this problem a ...

  7. 32.Group Anagrams(相同元素的不同组合)

    Level:   Medium 题目描述: Given an array of strings, group anagrams together. Example: Input: ["eat ...

  8. C# WCF 服务引用与Web引用

    参考:https://blog.csdn.net/yelin042/article/details/82770205

  9. 【JAVA】 01-Java基础知识

    链接: 笔记目录:毕向东Java基础视频教程-笔记 GitHub库:JavaBXD33 测试 01-Java基础知识 一.数据类型 基本类型 包装类型 缓存池 二.String 概览 不可变的好处 S ...

  10. SIP UserAgent (B2BUA client)——libosip2 libeXosip2

    1. libosip2 libeXosip2 http://www.antisip.com/download/exosip2/ Features:--------eXosip2 has support ...