ブランチ戦略
git-flow/github-flow
git-flow
- メインブランチを2つ (中央リポジトリ)
- master (リリース用)
- develop (開発用)
- サポートブランチを3つ(開発メンバーのリポジトリ)
- feature (developから派生。機能開発用。機能開発が終了次第、developにマージされて消える)
- release (developから派生。リリース準備用。リリースが終われば、masterとdevelopにマージされて消える)
- hotfix(masterから派生。リリース済みの製品に緊急対応用。masterにマージされ、タグをうつ)
github-flow
- masterのものはすべてリリース可能
- 新しく何かをするときはmasterから直接ブランチを作成
- 作成したブランチはローカルマシンにコミットして、リモートリポジトリにも同じ名前のブランチとして定期的にPush
- 開発が完了したらmasterへPull Requestを
- Pull Requestがレビューされたらmasterにマージし、その場で本番環境にリリースする
*チーム開発実践入門 参考
unicorn/nginxの設定ファイル
unicorn/nginx備忘録
- サーバ構築したとき(Rails使用)のメモです。参考になったら嬉しいです。
unicornの設定ファイル
config/unicorn.rb
worker_processes 4 working_directory "/var/www/rails/App" listen "/var/www/rails/App/tmp/sockets/unicorn.sock" pid "/var/www/rails/App/tmp/pids/unicorn.pid" stdout_path "./log/unicorn.stdout.log" stderr_path "./log/unicorn.stderr.log" preload_app true before_fork do |server, worker| Signal.trap 'TERM' do puts 'Unicorn master intercepting TERM and sending myself QUIT instead' Process.kill 'QUIT',Process.pid end defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect! end after_fork do |server, worker| Signal.trap 'TERM' do puts 'Unicorn worker intercepting TERM and doing nothing.Wait for master to send QUIT' end defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection end
nginxの設定ファイル
/etc/nginx/conf.d/App.conf
upstream App { server ホスト名; } server { listen 80; server_name ホスト名; root /home/user/App/current/public; access_log /var/log/nginx/App_access.log; error_log /var/log/nginx/App_error.log; client_max_body_size 1g; error_page 404 /404.html; error_page 422 /422.html; error_page 500 502 504 /500.html; try_files $uri/index.html $uri @app; location @app { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_pass http://App;