现状:现在是这样的,每个开发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. 爬虫之requests 请求

    1.发送不同的请求 import requests r = requests.get('https://www.baidu.com/') r = requests.post('http://httpb ...

  2. JAVA中JavaBean对象之间属性拷贝的方法

    JAVA中JavaBean对象之间的拷贝通常是用get/set方法,但如果你有两个属性相同的JavaBean或有大部分属性相同的JavaBean,对于这种情况,可以采用以下几个简便方法处理. 下面对这 ...

  3. Oracle-常见的错误

    1.见下面的例子 create or replace procedure p_qr_stu_cid(s_id in number, c_id out number) as begin select t ...

  4. Struts2之下载

    下载页面 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnco ...

  5. stl(优先队列操作)

    http://codeforces.com/gym/101911/problem/C Recently Monocarp has created his own mini-laboratory! Th ...

  6. 数据库之Query Builder

    Yii的查询构造器提供了一个用面向对象的方法来构造SQL语句.他让开发人员可以用类的方法,属性来作为SQL语句的一部分.然后把不同部分组装到一个正确的SQL语句中,调用DAO的方法来执行.下面的例子演 ...

  7. elasticsearch 基础 —— Mapping参数boost、coerce、copy_to、doc_values、dynamic、

    boost 在查询时,各个字段可以自动提升 - 更多地依赖于相关性得分,boost参数如下: PUT my_index { "mappings": { "_doc&quo ...

  8. (转)yum的$releasever真是太反动了

    Posted on 2009年 10月9日 by JulyClyde 来看这篇文章的人,大都应该同意<Unix编程艺术>中提到的那些观点吧.今天就给大家看一个反例:yum 的 $relea ...

  9. python浮点数与整数间的转化

    舍弃小数部分 >>> math.trunc(12.533222) 12 >>> round(12.2544) 12 按给定小数位数四舍五入 >>> ...

  10. [USACO06FEB]摊位预订Stall Reservations(贪心)

    [USACO06FEB]摊位预订Stall Reservations 题目描述 Oh those picky N (1 <= N <= 50,000) cows! They are so ...