前回からの続き
2.GitHubプライベートリポジトリの作成
Werckerと連携するGitHubのプライベートリポジトリを用意しておきます。WerckerはGitHubとBitbucketに対応しているので、プライベートリポジトリも無料で使えるBitbucketでもOK。リモートにpushします。
$ git remote add origin git@github.com:yourusername/rweckersample.git $ git push -u origin master
3.Werckerを設定
CIサービスWerckerを使えるようにしておきます。Werckerの新規登録はこちらからできます。
ログインして、「Add Application」からCI対象のアプリを追加します。
STEP1 Choose a Git provider : GitHubを選択
STEP2 Select a repository : 先ほどGitHubにpushしたリポジトリ(今回はrwerckersample)を選択
STEP3 Configure access : Werckerがリポジトリからソースコードを取得するためのアクセス方法を設定します。デフォルトのデプロイキー追加方法でいいでしょう。
STEP4 Setup your wercker.yml : Werckerがソースコードをビルドしたりテストしたりなど、どう扱うべきかを書いたwercker.ymlをアプリケーションに追加してねということです。テキストボックスの内容をコピーして、アプリケーションのルートディレクトリにwercker.ymlファイルを作成してペーストしましょう。
STEP5 Awesome! you are all done! : 最初の設定は完了です。
Werckerのビルドを走らせる前に、先ほどのwercker.ymlを自分のアプリケーションに合わせた内容にしておきましょう。ここではmysqlを使うこととrspecを走らせる設定を追加しています。
wercker.yml
box: wercker/rvm
services:
- wercker/mysql
# Build definition
# See the Rails section on the wercker devcenter:
# http://devcenter.wercker.com/articles/languages/ruby/settingup-rails4.html
# You will want to define your database as follows:
# services:
# - wercker/postgresql
# See more about services on our devcenter:
# http://devcenter.wercker.com/articles/services/
build:
steps:
# Uncomment this to force RVM to use a specific Ruby version
# - rvm-use:
# version: 2.1.5
# A step that executes `bundle install` command
- bundle-install
# A step that prepares the database.yml using the database in services
# - rails-database-yml
- rails-database-yml:
service: mysql
# A custom script step, name value is used in the UI
# and the code value contains the command that get executed
- script:
name: echo ruby information
code: |
echo "ruby version $(ruby --version) running"
echo "from location $(which ruby)"
echo -p "gem list: $(gem list)"
# Add more steps here:
# - script:
# name: rspec
# code: bundle exec rspec
- script:
name: Set up database
code: RAILS_ENV=test bundle exec rake db:schema:load
- script:
name: Run rspec
code: bundle exec rspec
ローカルへのコミットに続いてGitHubのリモートにpushします。そうすると、Werckerでは自動的にGitHubへのpushを検知してビルドが実行されます。リモートへpushした後に、ブラウザでWerckerを確認してみてください。
$ git add . $ git commit -m 'add wercker.yml' $ git push -u origin master
ビルド成功。先ほどwercker.ymlで設定したrspecも自動的に実行されてパスしています。
ここまでで、ローカルで開発して、GitHubへpushすることでコードに問題がないことを自動的にチェックする仕組みができました。続いて、AWSでサーバを立ててデプロイしていきます。
関連記事
[1] 最近のWebサービス開発フロー,WerckerでGithubのプライベートリポジトリからAWSへデプロイしてHipChatへの通知まで
[3] AWS EC2サーバの構築










