CircleCI 2.0持续集成Jekyll

Jekyll官网上只介绍了如何将Jekyll与CircleCI 1.0相集成,但CircleCI官网已升级至2.0,那么如何将此二者相结合呢?

Imagem de capa

谈到持续集成,最常用的工具无非就是三个:一个是TravisCI,一个是CircleCI,一个是Jenkins。前两个是网站,可以非常便利地与Github相集成,但都有数量限制,最后一个是开源软件,可以下载安装成供自己使用的工具,想做几个做几个。

所谓持续集成,听起来似乎很时尚,但其本质无非就是三件事:从代码库git中拉取代码、编译、部署。如果你想尝试Jenkins,可以通过Docker安装,然后集成到你自己的 git 仓库上

今天我们不谈Jenkins,今天要谈的是CircleCI。在这几个工具当中,CircleCI的界面应该说是最漂亮的:

clipboard.png

CircleCIGithub集成比较容易,直接选择自己的代码库拉取即可。而Github Pages由于使用了Jekyll,所以有必要看一下Jekyll如何与CircleCI集成,但Jekyll 官网上关于与 CircleCI 集成的文章还是基于旧版本的CircleCI 1.0的,而CircleCI 2.0已经与1.0有了很大差异。所以下面我们来讲一下如何把JekyllCircleCI 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命令,那是另外一个话题了。

关于CircleCIJekyll集成的真实案例,可以参考我的博客模版