Werckerを使ってHerokuにデプロイする

Posted by Tatsuyano on Fri, Mar 13, 2015
In
Tags ruby, heroku, rails, ci, wercker

Bitbucket(プライベートリポジトリ)に用意したアプリケーション(Rails)を WerckerでBuildし、HerokuにDeployした時の備忘録です。

前提

  • Bitbucketにアプリケーションが用意済み
  • Werckerにアカウントを持っていて、Bitbacketと連携済み
  • Herokuにアカウントを持っていて、Bitbacketと連携済み

BitbacketのリポジトリをWerckerに登録する

  1. プロバイダを選択します。

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

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

  4. wercker.ymlの内容が自動生成されます。wercker.ymlは後で新規に作成するので、ここではコピーせずに次に進みます。

  5. 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)の設定

  1. Buildが終わったので、次にDeploy(Heroku)の設定を行います。

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

  3. Heroku account pageをクリック先のページ(Heroku)からKeyをコピーします。

  4. Deploy target nameに適当な名前を設定します。また、auto deploy ...のチェックボックスをONにすると、2回目以降のBuild時に、自動でDeployされるようになります。

  5. Create new Heroku appを押下し、アプリケーション名と、Regionを設定します。

  6. 先ほど作成したwercker.ymlで使っている変数名を設定します。 今回はAPP_NAMEという変数に、先ほどのアプリケーション名を設定します。

  7. Deployの設定が終わったら、次にBuildのログのリンクを押下してください。

  8. Deploy toボタンに先ほど設定したDeploy target name(production)が表示されます。このボタンをクリックするとDeployが開始されます。

README.mdにbadgeを追加する

GithubのREADMEによくついている例のあれです。あるとなんとないかっこいいのでつけましょう。

リポジトリをWerckerに登録したさいにあったMake my app publicのチェックをONにした状態で、このbadgeをクリックすると、BuildとDeployのログが確認できるようになります。

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

参考サイト