现状:现在是这样的,每个开发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. workflow-core 简介

    最近想做一个OA相关的网站开发,一直都听说有workflow的东西,之前也断断续续学习过 Workflow Foundation 4.0,还是没有搞明白到底能够用它做什么 但还是觉得workflow在 ...

  2. [Python3 填坑] 013 几个类相关函数的举例

    目录 1. print( 坑的信息 ) 2. 开始填坑 2.1 issubclass() 2.2 isinstance() 2.3 hasattr() 2.4 getattr() 2.5 setatt ...

  3. TP 验证码

    TP自带验证码类Verify.class.php 生成验证码 public function verify_c(){ session_start(); ob_clean(); $Verify = ne ...

  4. mybatis输出映射总结

    使用resultType作为输出映射 只有查询出来的列名和pojo中的属性名一致时,才会映射成功, 如果不一致,可以使用resultMap最为输出类型 不管是输出单个对象还是列表(list中包括poj ...

  5. SqlServer 查看表注释

    SELECT DISTINCT d.name, f.value FROM syscolumns a LEFT JOIN systypes b ON a.xusertype= b.xusertype I ...

  6. 67.Task Scheduler(任务规划)

    Level: Medium 题目描述: Given a char array representing tasks CPU need to do. It contains capital letter ...

  7. HR面试总结

    求职面试HR最欣赏的自我介绍 2015-02-25 来源:www.cnrencai.com 浏览:391   明明很有能力的你,在面试中却不能发挥出色?来看看是不是自我介绍环节出了问题. 回答面试题目 ...

  8. spring(三):spring中BeanPostProcessor的使用

    spring中实现BeanPostProcessor的后置处理器 ApplicationContextAwareProcessor 进入该实现类内部 可以看到:该类帮我们组建IOC容器,判断我们的be ...

  9. npm run dev 报错:Error: Cannot find module 'webpack-cli/bin/config-yargs'

    使用 npm run dev 时报错: Error: Cannot find module 'webpack-cli/bin/config-yargs' 原因是找不到webpack-cli这个包,使用 ...

  10. zabbix入门之监控MySQL

    zabbix入门之监控MySQL 这里使用的是zabbix官方自带的MySQL监控模板. 首先确保在被监控主机安装zabbix-agent.zabbix-sender,并且将主机加入监控节点.具体操作 ...