PageRenderTime 51ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/config/deploy.rb

https://bitbucket.org/zachmakesu/dentasked-copy
Ruby | 125 lines | 110 code | 12 blank | 3 comment | 1 complexity | 6f912fd04c40efaafe2d73d6625bae1c MD5 | raw file
  1. set :application, "dentasked"
  2. set :repo_url, "git@bitbucket.org:gorated/dentasked.git"
  3. # Project-specific overrides go here.
  4. # For list of variables that can be customized, see:
  5. # https://github.com/mattbrictson/capistrano-mb/blob/master/lib/capistrano/tasks/defaults.rake
  6. fetch(:mb_recipes) << "sidekiq"
  7. fetch(:mb_aptitude_packages).merge!(
  8. "redis-server@ppa:rwky/redis" => :redis
  9. )
  10. set :deploy_to, -> { "/home/#{fetch(:user)}/apps/#{fetch(:application)}" }
  11. set :mb_recipes, %w(
  12. user
  13. aptitude
  14. dotenv
  15. logrotate
  16. migrate
  17. seed
  18. nginx
  19. postgresql
  20. rake
  21. rbenv
  22. ufw
  23. unicorn
  24. version
  25. )
  26. set :mb_dotenv_keys, %w(
  27. android_patient_download_url
  28. app_download_url
  29. aws_sns_access_key
  30. aws_sns_secret_key
  31. aws_sns_region
  32. birthdate_secret_key
  33. bitly_api_key
  34. consumer_fcm_key
  35. checkmobi_secret
  36. docs_username
  37. docs_password
  38. facebook_app_id
  39. facebook_app_secret
  40. gmail_username
  41. gmail_password
  42. google_client_id
  43. google_client_secret
  44. google_map_api
  45. hmac_secret
  46. ios_patient_download_url
  47. license_number_secret_key
  48. mailgun_domain
  49. mailgun_username
  50. mailgun_password
  51. mobile_number_secret_key
  52. partner_fcm_key
  53. pusher_app_id
  54. pusher_app_key
  55. pusher_app_secret
  56. rails_secret_key_base
  57. sidekiq_web_username
  58. sidekiq_web_password
  59. tmpi_cms_username
  60. tmpi_cms_password
  61. firebase_dynamic_link_domain
  62. dynamic_link_base
  63. dynamic_link_apn
  64. dynamic_link_dfl
  65. )
  66. set :linked_files, -> {
  67. [fetch(:mb_dotenv_filename)] +
  68. %w(
  69. config/database.yml
  70. config/unicorn.rb
  71. config/client_secrets.json
  72. ) +
  73. [
  74. "config/consumer_apn_#{fetch(:stage)}.pem",
  75. "config/partner_apn_#{fetch(:stage)}.pem"
  76. ]
  77. }
  78. set :db_local_clean, true
  79. set :db_remote_clean, true
  80. set :locals_rails_env, 'production'
  81. set :assets_dir, 'public/system'
  82. set :whenever_roles, ->{ :app }
  83. set :whenever_identifier, ->{ "Whenever: #{fetch(:application)}_#{fetch(:stage)}" }
  84. namespace :deploy do
  85. desc 'Make sure local git is in sync with remote.'
  86. task :check_revision do
  87. on roles(:app) do
  88. unless `git rev-parse HEAD` == `git rev-parse origin/#{fetch(:branch)}`
  89. puts 'WARNING: HEAD is not the same as origin/master'
  90. puts 'Run `git push` to sync changes.'
  91. exit
  92. end
  93. end
  94. end
  95. desc 'Initial Deploy'
  96. task :initial do
  97. on roles(:app) do
  98. before 'deploy:restart', 'mb:unicorn:start', 'mb:sidekiq:start'
  99. invoke 'deploy'
  100. end
  101. end
  102. desc 'Restart application'
  103. task :restart do
  104. on roles(:app), in: :sequence, wait: 5 do
  105. invoke 'mb:unicorn:restart'
  106. invoke 'mb:sidekiq:restart'
  107. end
  108. end
  109. before :starting, :check_revision
  110. after :finishing, :compile_assets
  111. after :finishing, :cleanup
  112. after :finishing, :restart
  113. end