最近工作很忙,利用休息时间花了接近一个月时间才读完《持续集成》和《持续交付》。
读完有一定的感触,写篇文章记录下吧。
more
什么是持续集成?
持续集成是一种开发实践,即团队的成员经常集成他们的工作,每次集成都通过自动化的构建(包括编译、自动化测试、发布)来验证,从而尽快地检测出集成错误。
继续阅读 »
将简单而重复的劳动尽量的交由机器自动执行,提高行业效率,工业智能制造显然已经讲这种自动化的思想运用的淋漓尽致;软件工程也希望运用这种思想持续规范软件开发,测试,发布流程
因此有了以下三种概念
一. 概述
持续集成
持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
继续阅读 »
更新日志
持续集成主要有两大好处:一是省去手动构建部署的繁琐,二是每一个提交都有自动跑测试保证质量。
本文主要介绍两大持续集成工具:TravisCI 和 Jenkins。
TravisCI
Travis CI 可以和 Github 无缝集成,每次push都可以触发相应的操作,跑测试、自动部署都能完成。
继续阅读 »
Travis CI 是一个在线的,分布式的持续集成服务,用来构建及测试在 GitHub 托管的代码。
more
Travis 是非常简单,不像 Jenkins 可以允许无限多的插件、有无数个工作任务创建和复杂的流程等等,不需要写很复杂的脚本。
继续阅读 »
在docker中安装jenkins
拉取jenkins image
shell
docker pull jenkins
Jenkins没有数据库,所有数据都是存放在文件中的,首先在本地创建Jenkins数据目录,用于保存Jenkins的数据 这个目录需要定期的备份,用于容灾(当前Jenkins容器所在节点由于不可抗因素无法使用时,可以在新机器上使用备份的数据启动新的jenkins master节点)。
shell
sudo mkdir /var/jenkins
sudo chown 1000:1000 /var/jenkins
sudo docker run -p 8080:8080 -p 50000:50000 -v /var
继续阅读 »
上篇写到了持续集成,其实持续集成只是持续交付中的一个环节而已。
那么什么是持续交付呢?
下面是我读《持续交付》的读书笔记。
more
什么是持续交付?
持续交付是一种开发实践,指的是,频繁地将软件的新版本,交付给 QA 或者用户进行验证,如果验证通过,代码就可以随时部署到线上。
继续阅读 »
Gitlab CI 简介
Gitlab中集成了CI (Continuous Integration:持续集成) 和CD (Continuous Delivery:持续交付) 来方便用户测试、构建、部署代码。它是Gitlab的一部分,用户可以在 Gitlab.com 上免费使用,同时也包含在了开源的Gitlab社区版和付费的Gitlab企业版中。
Gitlab CI具有如下特性:
多平台:您可以在任何支持Go语言的平台上运行,例如:Unix、Windows、OSX等。
多语言:构建脚本是通过命令行驱动的,可以支持诸如Java、PHP、Ruby、C等任何语言。
稳定:您的构建操作可以运行在其他机器上,而不是Gitlab上。
并行构
继续阅读 »
Gitlab简介
Gitlab 是一个用于管理GIT代码库的项目,提供权限管理、代码review、问题跟踪、wiki以及持续集成等多种功能,Gitlab 一共提供四种版本可供用户选择,分别是
- Gitlab Community Edition (CE):社区版,免费,用户自行托管,通过社区提供技术支持
- Gitlab Enterprise Edition (EE):企业版,付费,用户自行托管,提供附加的功能以及技术支持
- Gitlab.com:免费的SaaS服务,可以创建共有以及私有的版本库,可以购买额外的技术支持
- GitHost.io:由Gitlab提供的用户私有的独享服务
我们使用的是Gitlab CE版本。
G
继续阅读 »
Travis CI 简介
Travis CI是一个分步式的开源持续构建项目,只需要通过配置.travis.yml文件,即可将Github上的项目进行持续的编译、测试等工作,以便尽早发现错误,尽早改正,并减少人工的重复劳动。同时,也可以通过travis ci完成很多有趣的工作。
通过Travis CI自动发布hexo博客
我们建立的hexo博客,每次写完一篇,都要执行 hexo generate 和 hexo deploy 等命令,将博客生成的HTML静态文件部署到Github的版本库上,同时,也会将源代码保存一份到Github的另一个分支,每次都要执行很多重复操作,在此,我们可以通过Travis CI来帮我们完成这些重复劳动。
继续阅读 »
近两个月由于个人处于新环境、新项目的适应阶段,没怎么提笔写些文章。中间有好几个想法想记录下来分享,但受限于没有很好的时间段供自己总结思考(也可以总结为间歇性懒癌和剧癌发作),便啥也没有更新。借这个周末闲适的下午和明媚的阳光,决定把近来项目上的CI/CD(持续集成/持续交付)策略以及git分支模型和以前的项目做一下分析比较,希望对各位有所帮助,也能有所思考,尤其是那些期望搭建项目部署流水线或者想了解git分支模型的开发、运维人员。
继续阅读 »