談到持續集成,最經常使用的工具無非就是三個:一個是TravisCI,一個是CircleCI,一個是Jenkins。前兩個是網站,能夠很是便利地與Github
相集成,但都有數量限制,最後一個是開源軟件,能夠下載安裝成供本身使用的工具,想作幾個作幾個。html
所謂持續集成,聽起來彷佛很時尚,但其本質無非就是三件事:從代碼庫git
中拉取代碼、編譯、部署。若是你想嘗試Jenkins
,能夠經過Docker
安裝,而後集成到你本身的git倉庫上。git
今天咱們不談Jenkins
,今天要談的是CircleCI
。在這幾個工具當中,CircleCI
的界面應該說是最漂亮的:github
CircleCI
與Github
集成比較容易,直接選擇本身的代碼庫拉取便可。而Github Pages
因爲使用了Jekyll
,因此有必要看一下Jekyll
如何與CircleCI
集成,但Jekyll官網上關於與CircleCI集成的文章仍是基於舊版本的CircleCI 1.0
的,而CircleCI 2.0
已經與1.0
有了很大差別。因此下面咱們來說一下如何把Jekyll
與CircleCI 2.0
集成在一塊兒。docker
與1.0
不一樣的是,你不須要在項目的根目錄下創建circle.yml
了,而是要在項目根目錄下建立一個名爲.circle
的文件夾,而後在裏面放一個名爲config.yml
的文件,文件內容以下:segmentfault
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
命令,那是另一個話題了。ruby
關於CircleCI
與Jekyll
集成的真實案例,能夠參考個人博客模版。服務器