ダメでしょ!

プログラミングとか怒られた話とか…

Rails における Staging 環境の追加方法

売り切りで開発したシステムに改修依頼が来た

昔、作るだけ作ったシステムがあったんですが、特に改修とかの話もなく、1年以上経った今になって改修を依頼されました。
ありがたい限りです。

で、改修するんですけど、そもそも改修が来る想定がなかったのでproduction 環境とdevelopment 環境、それに test 環境という Rails そのままで作っていました。
なので、改修する前に staging 環境を用意して、結合テストシステムテストを行うための環境とするようにしました。

Staging 環境を追加するために必要な対応

Gemfile の修正

development 環境でも使っている、以下の gem を導入するために設定を変更しました。

group :development, :staging do
  gem 'bullet'
  gem 'meta_request'
  gem 'rack-dev-mark'
  gem 'rack-mini-profiler'
end

config/environments/staging.rb の追加

config/environments/production.rb をコピーして、config/environments/staging.rb を作ります。

ログレベルの修正、Bullet 及び rack_dev_markの設定追加を行いました。

# ログレベル設定
config.log_level = :debug

# Bullet 設定
config.after_initialize do
  Bullet.enable = true
  Bullet.alert = true
  Bullet.bullet_logger = true
  Bullet.console = true
  Bullet.rails_logger = true
end

# rack_dev_mark 設定
config.rack_dev_mark.enable = true
config.rack_dev_mark.theme = [Rack::DevMark::Theme::GithubForkRibbon.new(position: 'right', fixed: true, color: 'orange')]

config/secrets.yml の修正

ここは環境変数から取得することにして、以下のように追記します。

staging:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>

config/database.yml の修正

ここは今回インフラとして heroku を利用するため、特に追加はいらないです。
環境によってはデータベース設定を追記する必要があります。

staging:
  # heroku 上にリリースするため、設定なし

あとは普通に heroku 上に staging 環境を用意し、デプロイすれば staging 環境構築完了です!

思っていたより時間がかかった

あまりよく実施することでもないため、思いのほか調査と過去の記憶を呼び起こすのに時間がかかってしまいました。
こういうのをブログにまとめておくと、あとで読み返して利用できるので、自分のためにもこまめに更新しなきゃいけないですね。