Skip to content

Instantly share code, notes, and snippets.

@tarot
Last active February 28, 2018 13:21
Show Gist options
  • Save tarot/d9c1b98ef89d5ca7ce1d to your computer and use it in GitHub Desktop.
Save tarot/d9c1b98ef89d5ca7ce1d to your computer and use it in GitHub Desktop.
rails, postgres, redis, hipchat-notify, heroku-deployなwercker.yml

Werckerの設定

Environment variables

hipchat-notify用の設定。werckerのApplication Settings (右上の歯車アイコン) → Environment variables から、HIPCHAT_TOKENHIPCHAT_ROOM_IDを追加する。

SSH keys

heroku-deploy用の設定。werckerのApplication Settings (右上の歯車アイコン) → SSH keys から。

  • Generate new key pairボタンでKey Pairを作成する。Nameはheroku_key_pairとでもしておく。
  • Public keyをHeroku AccountのSSH Keysにコピペする  - そのままだとKey名が設定されていないので、 wercker-wercker_app_name を後置して貼り付ける。(スペースいっこあける)

deploy stepsのheroku-deployにkey-name: HEROKU_KEY_PAIRを付けないならやらなくていい。ただし毎回Key added to your Heroku accountメールが来る。

Deploy targets

werckerのApplication Settings (右上の歯車アイコン) → Deploy targets から。

参考: http://devcenter.wercker.com/quickstarts/deployment/heroku.html

  • Add deploy targetボタンからcustom deployを追加
    • どうもDockerを使うようになってからcustom以外選べなくなったようだ
  • Deploy target name: Deployボタンでここに設定した名前を選ぶことになる。わかりやすければなんでも
  • Auto deploy: チェックしてbranch名を設定すれば、そのbranchにpushされた時に勝手にデプロイするようになる
  • Add new variableボタンで、HEROKU_KEY, HEROKU_KEY_PAIR, HEROKU_USER, HEROKU_APP_NAMEを追加する
    • HEROKU_KEY
    • HEROKU_KEY_PAIR
      • SSH Key pair
      • さっき作ったheroku_key_pairを選ぶ
      • wercker.ymlにkey-name: HEROKU_KEY_PAIRを書かないならこれは要らない
    • HEROKU_USER
      • Text
      • Herokuのユーザ名。当然、HEROKU_KEYのオーナーで、HEROKU_APP_NAMEにdeployできるユーザにする
    • HEROKU_APP_NAME
      • Text
      • デプロイ先のHerokuアプリ名

同じ手順で好きなだけDeploy targetsを追加する。

box: ruby:2.2.2
services:
- id: postgres
env:
POSTGRES_PASSWORD: ourlittlesecret
POSTGRES_USER: myuser
- redis
build:
steps:
- script:
name: export environment variables
code: |
export DATABASE_URL="postgres://${POSTGRES_ENV_POSTGRES_USER}:${POSTGRES_ENV_POSTGRES_PASSWORD}@${POSTGRES_PORT_5432_TCP_ADDR}:${POSTGRES_PORT_5432_TCP_PORT}"
export REDIS_URL="redis://${REDIS_PORT_6379_TCP_ADDR}:${REDIS_PORT_6379_TCP_PORT}"
export RAILS_ENV=test
- bundle-install
- script:
name: set up db
code: |
bundle exec rake db:create
bundle exec rake db:schema:load
- script:
name: run test
code: bundle exec rake test
after-steps:
- install-packages:
packages: sudo
- hipchat-notify:
token: $HIPCHAT_TOKEN
room-id: $HIPCHAT_ROOM_ID
deploy:
steps:
- heroku-deploy:
key: $HEROKU_KEY
key-name: HEROKU_KEY_PAIR
user: $HEROKU_USER
app-name: $HEROKU_APP_NAME
install-toolbelt: true
run: rake db:migrate
after-steps:
- install-packages:
packages: sudo
- hipchat-notify:
token: $HIPCHAT_TOKEN
room-id: $HIPCHAT_ROOM_ID
@tarot
Copy link
Author

tarot commented Aug 8, 2015

railsは4.2.3, config/database.ymlはこんなの

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  <<: *default
  database: appname_development

test:
  <<: *default
  database: appname_test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment