Ruby
middleman
wercker

Middleman 製の GitHub Pages サイトを Wercker で自動デプロイ

More than 3 years have passed since last update.

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 というレポジトリだとします。


wercker.yml

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 すれば、自動でデプロイされるはず・・・。