志田雅貴

座右の銘は、 初心を忘れず、所信をつらぬく 小学生の時に考えた言葉です。矛盾しているような言葉にも聞こえますが、このようなパラメータの中を自由に飛び回れるような考え方が大好きです。

ブランチ戦略

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にマージし、その場で本番環境にリリースする

*チーム開発実践入門 参考

twitter.com

githubのリポジトリ取得

対象

リポジトリのクローン

Githubでクローンしたいリポジトリページに行く

②「Clone or download」をクリック

f:id:shidamasataka:20170814001750p:plain

ssh をコピー

f:id:shidamasataka:20170814001743p:plain

④ローカルのターミナルでgit cloneを実行

git clone git@github:〇〇

リポジトリから作成したい方はこちら。 ↓↓↓

shidamasataka.hatenablog.com

twitter.com

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;

twitter.com