Middleman Blog を Travis-CI で GitHub Pages に継続デプロイ

Octopress Blog では既に設定していた Travis-CI での自動デプロイですが、こちらのブログにも設定します。

middleman build && middleman deploy とか毎回コマンドうつの面倒ですもんね。

参考サイト: Middleman で作った web サイトを Travis + GitHub pages でお手軽に運用する

上記サイトとの違いは、middleman-deploy プラグインを使っているため、自分で git コマンドを記述する手間が省けます。

1. travis にリポジトリを登録する。

未登録の場合、3 で、 repository not known to https://api.travis-ci.org/: ngsio/ja.ngs.io などと怒られた。 https://travis-ci.org/profile、もしくは https://travis-ci.org/profile/$YOUR_ORGANIZATION$ でスイッチを ON にする。

2. GitHub の Token を取得する。

設定画面 から Personal Access Tokens セクションの右肩にある Create new token ボタンより作成。

3. travis より、暗号化されたキーを取得する

$ travis encrypt -r ngsio/ja.ngs.io "GH_TOKEN=(2 で取得した GitHub Token)"

4. .travis.yml を書く

---
language: ruby
script: bundle exec middleman build
env:
  global:
    - GIT_COMMITTER_NAME='ngs@travis-ci'
    - GIT_COMMITTER_EMAIL='a+travis@ngs.io'
    - GIT_AUTHOR_NAME='ngs@travis-ci'
    - GIT_AUTHOR_EMAIL='a+travis@ngs.io'
    - secure: "(3 で取得した secure の値)"
after_success:
  - '[ "$TRAVIS_BRANCH" == "master" ] && [ $GH_TOKEN ] && bundle exec middleman deploy >/dev/null 2>&1'

5. config.rb にデプロイ設定を追記する

activate :deploy do |deploy|
  deploy.method = :git
  deploy.branch = 'gh-pages'
  deploy.remote = "https://#{ENV['GH_TOKEN']}@github.com/ngsio/ja.ngs.io.git"
end
comments powered by Disqus