Bitbucket(プライベートリポジトリ)に用意したアプリケーション(Rails)を WerckerでBuildし、HerokuにDeployした時の備忘録です。
前提
- Bitbucketにアプリケーションが用意済み
- Werckerにアカウントを持っていて、Bitbacketと連携済み
- Herokuにアカウントを持っていて、Bitbacketと連携済み
BitbacketのリポジトリをWerckerに登録する
プロバイダを選択します。

リポジトリを選択します。

リポジトリへの接続方法を選択します。

wercker.ymlの内容が自動生成されます。wercker.ymlは後で新規に作成するので、ここではコピーせずに次に進みます。
Make my app publicにチェックを入れると、後ほど出てくるbadgeをクリックしたさいに、deploy情報を公開できるようになります(今回はチェックしません)。
これで、WerckerにBitbacketのリポジトリの登録が完了しました。
wercker.ymlを作成し、アプリケーションをBuildする
WerckerでアプリケーションをBuild、Deployするための設定は、wercker.ymlに記載します。wercker.ymlは、アプリケーションのRootディレクトリ直下(Gemfileなどが置いてある階層)に置いてください。
wercker.yml
box: wercker/ruby
services:
- wercker/postgresql
build:
steps:
- bundle-install
- rails-database-yml:
service: postgresql
- script:
name: echo ruby information
code: |
echo “ruby version $(ruby –version) running!”
echo “from location $(which ruby)”
echo -p “gem list: $(gem list)”
- script:
name: Set up db
code: RAILS_ENV=test bundle exec rake db:schema:load
- script:
name: Run RSpec
code: bundle exec rspec
deploy:
steps:
- heroku-deploy:
install-toolbelt: true
- script:
name: Update database
code: heroku run rake db:migrate –app $APP_NAME
- script:
name: Update assets
code: heroku run rake add_static_assets –app $APP_NAME
生成したwercker.ymlを、Bitbacketにgit pushすると、Wercker上に自動でBuildされます。
$ git add wercker.yml
$ git commit -m ‘Add wercker.yml’
$ git push origin master
Deploy先(Heroku)の設定
Buildが終わったので、次にDeploy(Heroku)の設定を行います。

WerckerにHerokuのAPIキーを設定します。

Heroku account pageをクリック先のページ(Heroku)からKeyをコピーします。
Deploy target nameに適当な名前を設定します。また、auto deploy ...のチェックボックスをONにすると、2回目以降のBuild時に、自動でDeployされるようになります。
Create new Heroku appを押下し、アプリケーション名と、Regionを設定します。
先ほど作成したwercker.ymlで使っている変数名を設定します。 今回は
APP_NAMEという変数に、先ほどのアプリケーション名を設定します。
Deployの設定が終わったら、次にBuildのログのリンクを押下してください。

Deploy toボタンに先ほど設定したDeploy target name(production)が表示されます。このボタンをクリックするとDeployが開始されます。
README.mdにbadgeを追加する
GithubのREADMEによくついている例のあれです。あるとなんとないかっこいいのでつけましょう。
リポジトリをWerckerに登録したさいにあったMake my app publicのチェックをONにした状態で、このbadgeをクリックすると、BuildとDeployのログが確認できるようになります。

こんな簡単に登録できて、しかも無料(今のところ)なんて、Werckerすごくいいですね。以上、お疲れ様でした。