前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于提交和合并流水线的实践

关于提交和合并流水线的实践

作者头像
DevOps云学堂
发布2019-10-25 02:17:46
2K0
发布2019-10-25 02:17:46
举报
文章被收录于专栏:DevOps持续集成

作者

泽阳,运维工程师,实际工作经验4-5年,经历了传统运维到自动化运维整个过程。整理分享DevOps、CICD、编程开发、监控、日志等相关技术实践!定期更新,来吧一起踏上技术的征途!整理的最新Jenkins实践文档 http://zeyangli.github.io

1 简介

今天干了点什么呢?干了件坏事~~ 嘿嘿嘿

  • 实践Gitlab push 和Merge 流水线;

2 流水线触发场景

我们非常推荐以版本控制系统为源的构建流水线设计,从每一位开发人员提交代码即可对当前提交代码进行检查编译构建,尽快将错误反馈给每位提交人员。

提交流水线

  • 提交即构建
  • 编译单测打包代码质量检查
  • 构建错误第一时间通知提交人

合并流水线

  • codereview
  • 配置分支保护
  • 创建合并请求对将代码审查结果在评论区展现
  • 由assignUser合并代码

3 提交流水线设计

我使用的方式是通过webhook触发jenkins构建,这样很灵活。相信很多人也是通过这种方式进行配置的。

首先配置Jenkins项目

  • 使用generic webhook方式触发项目构建
  • 配置构建触发器参数(获取gitlab返回的数据,比如分支、用户等信息)
  • 配置构建触发器中的token(确保唯一,建议可以用项目名称)
  • 配置触发器中的请求过滤(merge_request,opend)

其次是Gitlab的配置

  • 项目-》集成-》新建webhook
  • 填写webhook地址?token=projectName
  • ☑️MergeRequest操作触发

剩下的就是编写Jenkinsfile了,下面列出几个关键点

1.获取gitlab数据中的分支名称,作为本次构建的分支名称。

2.获取gitlab数据中的用户邮箱,作为构建失败后通知对象。

4 合并流水线设计

关于合并流水线的步骤其实跟提交流水线很类似,但是在代码质量检查的步骤中严格要求检查质量阈的状态,当质量阈状态为错误的时候,需要立即失败并通知发起人。

第一次设计

  • 开发人员创建MR并指定AssignUser。
  • Jenkins开始对MR中的源分支进行编译构建打包代码检查。
  • 构建成功(代码质量没问题)在MR页面评论提示信息。
  • 构建失败在MR页面评论失败信息

第二次设计(借助GitlabCI)

  • 项目配置当流水线成功时才能merge。
  • 开发人员创建MR并指定AssignUser。
  • Jenkins开始对MR中的源分支的最后一次commit状态改为running。
  • 然后进行编译构建打包代码检查。
  • 构建成功,更新最后一次commit的状态为 success。
  • 构建失败,更新最后一次commit的状态为faild。

5 总结

流水线的实现方式各式各样,这只是实现方式的一种。可能你会有更好的想法,欢迎您回复。其实最后我把这两种流水线整合到了一个Jenkinsfile中了。因为提交和合并流水线太相似了,大部分步骤都是公用的。可以使用when语法对不通操作所要运行的步骤配置触发条件。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps持续集成 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 简介
  • 2 流水线触发场景
  • 3 提交流水线设计
  • 4 合并流水线设计
  • 5 总结
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档