谈到持续集成,最常用的工具无非就是三个:一个是TravisCI,一个是CircleCI,一个是Jenkins。前两个是网站,可以非常便利地与Github
相集成,但都有数量限制,最后一个是开源软件,可以下载安装成供自己使用的工具,想做几个做几个。
所谓持续集成,听起来似乎很时尚,但其本质无非就是三件事:从代码库git
中拉取代码、编译、部署。如果你想尝试Jenkins
,可以通过Docker
安装,然后集成到你自己的git仓库上。
今天我们不谈Jenkins
,今天要谈的是CircleCI
。在这几个工具当中,CircleCI
的界面应该说是最漂亮的:
CircleCI
与Github
集成比较容易,直接选择自己的代码库拉取即可。而Github Pages
由于使用了Jekyll
,所以有必要看一下Jekyll
如何与CircleCI
集成,但Jekyll官网上关于与CircleCI集成的文章还是基于旧版本的CircleCI 1.0
的,而CircleCI 2.0
已经与1.0
有了很大差异。所以下面我们来讲一下如何把Jekyll
与CircleCI 2.0
集成在一起。
与1.0
不同的是,你不需要在项目的根目录下建立circle.yml
了,而是要在项目根目录下创建一个名为.circle
的文件夹,然后在里面放一个名为config.yml
的文件,文件内容如下:
version: 2
jobs:
build-job:
docker:
- image: circleci/ruby:latest
steps:
- checkout
- run: bundle install
- run: bundle exec jekyll build
- run: bundle exec htmlproofer ./_site --allow-hash-href --check-html --disable-external
- run: echo "Build finished!"
workflows:
version: 2
build-deploy:
jobs:
- build-job
在这里,我们采用了工作流的方式来做,但是只做了编译部分,而没有做需要rsync
的部署部分,因为项目本身已经在Github Pages
服务器上了,不需要额外部署。如果你需要部署到其他服务器的话,还需要在其他服务器上开辟rsync
服务,然后在CircleCI
里执行rsync
命令,那是另外一个话题了。
关于CircleCI
与Jekyll
集成的真实案例,可以参考我的博客模版。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。