middlemanアプリケーションをwerckerを使ってGithub Pageに継続的デプロイする

<a href=http://middlemanapp.com/">middlemanアプリケーションをgithubのmasterブランチにpushするだけでgithub pageを更新できるようにした。

middlemanは静的サイトジェネレーターで、ビルドすることで静的サイトを生成できる。
生成した静的ページをgithubのgh-pagesブランチにpushすることでwebページとして公開する。

今回はmasterにプッシュしたあとのビルドからデプロイまでの過程をwerckerを使ってCIした。
同様のことはTravis CIdrone.ioなどを使ってもできる。
werckerはBitbacketgithubのプライベートリポジトリでも利用できて、
サービスがβ版の間は無料(ただしビルドは25分以内でないといけない)ということで選択した。

werckerアカウントを作成し、middlemanをgithubリポジトリを同期したら、
デプロイターゲットとしてgh_pageを登録していく。

まず、githubのアカウント設定のapplicationからtokenを作成する。

つづいて、werckerのmiddlemanアプリケーションのsetting内にある
「Deploy targets」で「Add deploy targe」で「Custom deploy」を選択する。

  • Deploy target name には任意の名前(例えばgh_pages)
  • Auto deployにチェック。これはビルドが完了したらデプロイステップを自動実行する設定
  • branchesにはmasterを入力(master以外にpushした際にCIする場合はそのブランチ名)
  • Protectedにチェックをいれる。これにチェックすると環境変数がログに表示されない

これでmasterブランチにpushするとwercker.ymlの指定通りにビルドステップを実行し、
自動でデプロイステップも実行するようになる。

続いて環境変数を設定する。

Add new variableから
Environment variableにGH_REMOTE。テキストエリアに
https://{GITHUB-TOKEN}@github.com/{GITHUB-ACCOUNT}/{リポジトリ名} を入力。

これで、wercker側の設定は完了。

あとはwercker.ymlにビルドステップとデプロイステップを記述する。

今回は、middlemanのビルド以外にjsのパッケージ管理にbowerも使ってたので
nodejs v0.8.9以上が必要だったので、boxをubuntu12.04-nodejs0.10にした。

特に指定してないとバージョンが低くできなかったため、bower installでエラーになってしまった。
middlemanのビルドだけであれば特にboxを指定しないでも大丈夫かも。

Travis CIでの手順より若干簡単かな。

参考ページ: http://blog.wercker.com/2013/07/25/Using-wercker-to-publish-to-GitHub-pages.html
Github Repository: kazu69/middleman-blog

Comments