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すごくいいですね。以上、お疲れ様でした。