Middleman は便利ですが、Jekyll のようにコミットするだけで GitHub Pages にデプロイできないのが玉に瑕。そこで、Wercker を使って GitHub に push されたら、自動でビルドしてデプロイするようにします。
Wercker への登録とアプリの作成
まず Wercker にユーザ登録。GitHub アカウントで登録できます。
Apps > Add an application でアプリを追加。かなり簡単に追加できます。オープンソースプロジェクトなら、3. Add werckerbot はスキップして大丈夫です。
Deploy Target の作成
できた app の Settings > Deploy targets > Add deploy target でデプロイ対象を追加。Auto deploy はチェックして、ソースの方のブランチ名を指定します。
で、Deploy pipleline > Add new variable に GITHUB_TOKEN などの名前で GitHub Token を追加します。これは、GitHub の Settings > Applications > Personal Access Tokens で生成できます。権限はデフォルトで OK。
wercker.yml の追加
ソースのブランチのルートに wercker.yml というファイルを作りましょう。ここでは仮に foo/foo.github.io というレポジトリだとします。
box: wercker/rvm
build:
steps:
- rvm-use:
version: 2.1.2
- bundle-install
- script:
name: build with middleman
code: bundle exec middleman build --verbose
deploy:
steps:
- lukevivier/gh-pages:
token: $GITHUB_TOKEN
basedir: ./build
repo: foo/foo.github.com
lukevivier/gh-pages という wercker のプラグインのようなものを使っているので、とても簡単です。だた、これだとデプロイ先のブランチの履歴を毎回消してしまうので、それが嫌な人には別の方法をおすすめします。
yml のインデントがスペース 4 個じゃないとエラーになるようなので、注意しましょう。
で、これをコミットすれば準備完了。GitHub に push すれば、自動でデプロイされるはず・・・。