前回からの続き
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サーバの構築