LoginSignup
44
47

More than 5 years have passed since last update.

RailsアプリをwerckerでCIする

Last updated at Posted at 2014-03-19

はじめに

  • werckerを使うとリモートリポジトリに変更がpushされた時点でビルド/デプロイが自動で走らせることができます
  • 無料で利用できます
  • こちらのサイトに詳しく書いてあります、非常に参考になりました
    • 私はさぐりさぐりで半日かかりましたが、本Qiita記事を見れば30分〜1時間程で体験は出来ると思います

事前準備

  • werckerのアカウント登録をgithubアカウントで登録してください
  • githubherokuのアカウントを持っていなければそちらも

必要な作業

  • githubにRailsアプリをあげておく
  • werckerでCIするアプリケーションを登録
  • Herokuアプリの作成
  • werckerでデプロイの設定
  • wercker.ymlを編集
  • いざ、git push

githubにRailsアプリをあげておく

werckerでCIするアプリケーションを登録

  • 登録したアカウントでログインする
  • 「Add an application」をクリックしてCIするアプリを追加する
    • 「1. Choose a Git provider」でUse GitHubをクリック
    • 「2. Select a repository」対象のアプリを選択して「Use selected repo」をクリック
    • 「3. Add werckerbot」でwerckerbotを追加するように言われます(スキップ可能)
    • 「4. Setup your wercker.yml」でymlを設定するようにいわれますが、先ほどのリポジトリをForkすれば何も文句はいわれません(スキップ可能)
    • 「Let's finish up」で「Create application」をクリック

Herokuアプリの作成

  • Herokuにログインする
  • Apps」をクリックする
  • 「Create a new app」をクリックし、アプリを作成する
    • 任意の名前をしていしなければ自動で適当な名前で作られます
    • 私の場合、fierce-chamber-1303という名前が割り当てられました

デプロイの設定

  • 「Settings」▶︎「Add deploy target」▶︎「Heroku」
  • Herokuにログインする
  • Herokuのアカウント設定にある「API Key」をコピペして「Connect」をクリック
  • 「Deploy target name」に任意の名前をつける(ex. production)
  • 「Auto deploy」にチェックをいれ、branch nameにmasterといれる
  • 「Heroku app name」に先ほどで作ったHerokuのアプリ名を選択して「Save」をクリック

wercker.ymlを編集

  • 基本的にこちらに書いてあるまま使いました
  • 私の試した環境ではうまく動かなくて1カ所だけ編集しました
  • $APP_NAMEとしてますが直書きでも可です
    • 環境変数を使う場合は、werckerの「Settings」▶︎「Pipeline」▶︎「Add new variable」から追加してください
deploy:
    steps:
        - heroku-deploy
        - script:
            name: Update database
#           code: heroku run rake db:migrate --app $APP_NAME
            code: heroku run:detached rake db:migrate --app $APP_NAME

いざ、git push

  • リモートリポジトリに変更がpushされたことをフックして、ビルドとデプロイが開始されることを確認しました

その他

  • 私の環境では以下が出来ていなかったのでやっておきました
    • .ssh/configの設定
    • .git/configの設定
    • Heroku周りの設定
  • お使いの環境によって細かな違いがあると思うので参考までに

.ssh/configの設定

Host github.com
  User git 
  Hostname ssh.github.com
  Port 443 
  IdentityFile ~/.ssh/id_rsa

Host heroku.com
  User git 
  Hostname heroku.com
  Port 22
  IdentityFile ~/.ssh/id_rsa
  IdentitiesOnly yes 
  TCPKeepAlive yes 

.git/configの設定

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = ssh://git@github.com/RustyNail/rails-wercker-heroku.git
[branch "master"]
        remote = origin
        merge = refs/heads/master
[remote "heroku"]
        url = git@heroku.com:fierce-chamber-1303.git
        fetch = +refs/heads/*:refs/remotes/heroku/*

Heroku周りの設定

  • public keyの登録
$ heroku keys:add
$ heroku login # loginできることを確認
# 以下のようになればOK
Enter your Heroku credentials.
Email: xxxxx@example.com
Password (typing will be hidden): 
Authentication successful.

制限

  • 1つのビルドが25分以内に完了することという制限があります
  • 1つのリポジトリに対して一つのCIしか登録できない
  • クレジットカード契約はしない

参考にしたサイト

~ただの宣伝~

  • 全国のSeleniumer必読
  • Seleniumerといっていますが、Selenium, SauceLabs, Travis, Jenkinsに関するノウハウ書いているのでよかったら参考にしてみてください
44
47
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
47