前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Gitlab和Gitlab CI做持续集成(理论篇)

使用Gitlab和Gitlab CI做持续集成(理论篇)

作者头像
donghui
发布2019-04-19 15:25:06
1.1K0
发布2019-04-19 15:25:06
举报
文章被收录于专栏:donghui的博客donghui的博客

持续集成是一种软件开发实践。

在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。

每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。

关于持续集成,可以阅读Martin Fowler(马丁·福勒 )的经典文章:http://www.martinfowler.com/articles/continuousIntegration.html

集成的频率越高越好,更频繁的集成意味着更早的发现问题。

通过持续集成,及时发现和解决代码故障,提高代码质量,减少故障处理成本等等。

当下持续集成工具不胜枚举,开源的或商业的,可本地安装的或Sass的,如:

  • 当前最最流行的,一骑绝尘的Jenkins
  • 与Github紧密集成的Travis CI
  • 有着持续集成DNA的ThoughtWorks GO
  • Atlassian工具链之一的Bamboo
  • 与Gitlab紧密集成的Gitlab CI
  • ……

持续集成工具技术选型(Jenkins VS Gitlab CI):

  • Jenkins有GUI
    • GUI使得易于学习与使用,但一系列插件可能会变得混乱不堪
    • 如果需要用户访问与管理,这个是首选
  • 与Gitlab的集成,Jenkins不及Gitlab CI
    • Jenkins需要为Project创建JOB,commit与build对应关系无法直观体现
    • Gitlab8.0版本开始完全集成了持续集成工具Gitlab CI
    • Gitlab CI有漂亮的界面,每个构建有迹可循,偏于回溯
  • 使用yaml定义Build Pipeline更清晰
    • 使用yaml定义Pipeline的CI产品
      • Travis CI
      • Bitbucket Pipelines
      • Circle CI
      • Magnum CI
  • Jenkins2.0也支持更高级的Pipeline
    • 使用Jenkinsfile和Pipeline插件,Jenkinsfile 使用Groovy DSL定义
  • Pipeline、Stage、Job的概念类似ThoughtWorks GO中的概念
    • 一个pipeline包含一个或多个stage,stage是串行的
    • 一个stage包含一个或多个job,job是并行的

鉴于Gitlab CI与Gitlab集成的更友好,而且想尝试下Gitlab CI + Docker,于是选择了Gitlab CI做持续集成。

使用Gitlab CI进行持续集成实践的流程:

  • 代码Check In到GitLab
  • 提交后触发Gitlab CI(使用Docker进行Build)
  • Gitlab CI 拉取代码进行编译、质量分析(SonarQube )
  • SonarQube 将质量分析报告反馈到GitLab相应的commit(以Comment的形式)
  • Gitlab将构建结果反馈给Develop (以Email的形式 )

参考:

https://about.gitlab.com/gitlab-ci/

http://stackoverflow.com/questions/37429453/gitlab-ci-vs-jenkins

https://about.gitlab.com/2016/07/22/building-our-web-app-on-gitlab-ci/

https://insights.sei.cmu.edu/devops/2015/01/continuous-integration-in-devops-1.html

(adsbygoogle = window.adsbygoogle || []).push({});

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016/07/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档