知ってた? werckerを使えばmiddlemanで作った静的ページをS3にリリースするのも自動化できちゃうよ

ツール

以前にこんな記事で便利なCIサービスwerckerを紹介させていただきました。

Githubのプライベートリポジトリでも無料で使えるCI、Werckerを使ってrails newからHerokuのデプロイまでやってみる

社内でもいくつかwerckerでCIを回すプロジェクトが出てきたりなど、使い心地はなかなか好評のようです(テストが多すぎてテスト実行中にwerckerがタイムアウトするようなトラブルもありましたが・・・)。

middlemanからS3へのリリースも自動化できちゃうよ

そんな便利なwercker、なんとS3へのsyncにも対応しています。

Streamlining your Middleman deploys with wercker and S3

つまりmiddlemanで静的ページを作って、それをGithubのリポジトリなんぞにpushするだけで、Webホスティングモードに設定してあるS3に自動的に反映されるなんていうフローが実現できるんです。便利ですね。

こんな感じに設定すれば良いようです

画面ではこんな感じに設定しておきつつ、

wercker

wercker.ymlにはこんな感じで設定をすればOK。

box: wercker/ruby
build:
    steps:
        # Execute the bundle install step, a step provided by wercker
        - bundle-install
        # Execute a custom script step.
        - script:
            name: middleman build
            code: bundle exec middleman build --verbose
deploy:
    steps:
        # Execute the s3sync deploy step, a step provided by wercker
        - s3sync:
            key_id: $AWS_ACCESS_KEY_ID
            key_secret: $AWS_SECRET_ACCESS_KEY
            bucket_url: $AWS_BUCKET_URL
            source_dir: build/

middlemanにはもちろんS3にデプロイするためのプラグインもあるんですが、pushしたら反映されるというぐらいフローを単純化しておくと、他の人に作業をお任せするときも楽なので良いと思います。