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分支模型的开发、运维人员。
继续阅读 »
Travis CI 是一个在线的,分布式的持续集成服务,用来构建及测试在 GitHub 托管的代码。
more
Travis 是非常简单,不像 Jenkins 可以允许无限多的插件、有无数个工作任务创建和复杂的流程等等,不需要写很复杂的脚本。
继续阅读 »
我的小需求
我在 github 上有个 repo,go 语言写的一个小程序,当时写这个程序的原因,一是练手,二是确实也想解决平时工作中的一个小痛点。使用 go 写是因为 go 语言写的程序编译后是一个不依赖于其他包或环境运行时的可执行文件,对使用者来说很方便,不必像 python 那样,首先得安装 python,又要做 pip install xxx 等一大堆工作,就算是用了 virtualenv 对环境没有太大的污染,但怎么说都没有一个独立的可执行程序来得方便。当然,还是有办法将 python 程序也弄成一个自包含的可执行文件,但太折腾。
继续阅读 »
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上。
并行构
继续阅读 »
简介
注册Travis-CI都N长时间了,但是一直没有使用它来构建。今天先使用它构建了两个小的node.js项目,还算顺序,然后使用它来构建[QuickAF],没有想到竟然是一条如此艰辛的路!特地将构建过程记录如下。
more
继续阅读 »
单元测试Unit Test
很早就知道单元测试这样一个概念,但直到几个月前,我真正开始接触和使用它。究竟什么是单元测试?我想也许很多使用了很久的人也不一定能描述的十分清楚,所以写了这篇文章来尝试描述它的特征和原则,以帮助更多人。
什么是单元测试?
先来看看单元测试的定义,在维基百科英文版中可以找到Kolawa Adam在 Automated Defect Prevention: Best Practices in Software Management 一书中对单元测试的定义:
In computer programming, unit testing is a method by which individual unit
继续阅读 »
更新日志
持续集成主要有两大好处:一是省去手动构建部署的繁琐,二是每一个提交都有自动跑测试保证质量。
本文主要介绍两大持续集成工具:TravisCI 和 Jenkins。
TravisCI
Travis CI 可以和 Github 无缝集成,每次push都可以触发相应的操作,跑测试、自动部署都能完成。
继续阅读 »
关于Gitlab Pages
与Github Pages相似,Gitlab Pages也是一个用来托管静态文件的服务,由Gitlab提供,通过与Gitlab CI和Gitlab Runner集成,将用户个人、组织以及项目的页面部署到静态文件服务当中。
Gitlab Pages是从Gitlab EE 8.3版本才引入的,自定义CNAME和TLS支持是从Gitlab EE 8.5版本中引入的,由于我们没有Gitlab EE 环境,此处我们使用Gitlab.com提供免费服务。
开始使用Gitlab Pages
通常来说,有两种类型的pages
用户页面(username.exmaple.io)或者组织页面(groupname
继续阅读 »
更新历史:
2017.09,初稿完成
2018.02,更新 zuul3 介绍
写这篇博客的起因是我要为自己的项目(Qinling)在 OpenStack 社区 CI 里增加 devstack gate job,也就是跑功能测试,这样后续的代码修改以及新增特性时自己心里也有底气,功能测试本来就是为了保障代码质量。
继续阅读 »