caploy 0.1.5 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@ Capistrano::Configuration.instance.load do
5
5
  set :keep_releases, 10
6
6
  set :use_sudo, false
7
7
 
8
- set :protocol, :both
8
+ set :nginx_protocol, :both
9
9
 
10
10
  set :scm, :git
11
11
  set :git_enable_submodules, false
@@ -25,6 +25,35 @@ Capistrano::Configuration.instance.load do
25
25
  # if you want to remove the dump file after loading
26
26
  set :db_local_clean, true
27
27
 
28
+ namespace :deploy do
29
+ desc "deploy always with migrations"
30
+ task :default do
31
+ deploy.migrations
32
+ end
33
+
34
+ namespace :cache do
35
+ desc "Flush cache"
36
+ task :clear, :roles => :app do
37
+ run "cd #{current_path} && #{rake} cache:clear RAILS_ENV=#{stage}"
38
+ end
39
+ end
40
+
41
+ task :set_branch_info_file, :roles => :app do
42
+ run "cd #{release_path} && echo \"#{branch}\" > CURRENT_BRANCH"
43
+ end
44
+
45
+ desc "build missing paperclip styles"
46
+ task :build_missing_paperclip_styles, :roles => :app do
47
+ run "cd #{current_path}; RAILS_ENV=#{rails_env} bundle exec rake paperclip:refresh:missing_styles"
48
+ end
49
+
50
+ desc 'Show deployed revision'
51
+ task :revision, :roles => :app do
52
+ run "cat #{current_path}/REVISION"
53
+ end
54
+
55
+ end
56
+
28
57
  task :test_and_prepare_cap_env do
29
58
  abort "You must set :user before using defaults" unless fetch(:user, nil)
30
59
  abort "You must set :repository before using defaults" unless fetch(:repository, nil)
@@ -28,7 +28,7 @@ Capistrano::Configuration.instance.load do
28
28
  end
29
29
 
30
30
  task :setup, :roles => :web do
31
- protocol = fetch(:protocol, nil).to_s
31
+ protocol = fetch(:nginx_protocol, nil).to_s
32
32
  template_path = File.expand_path('../../templates/nginx/vhost.erb', __FILE__)
33
33
  vars = {
34
34
  'application' => application,
@@ -46,7 +46,8 @@ Capistrano::Configuration.instance.load do
46
46
  'optional_nginx_https_content' => fetch(:optional_nginx_https_content, ''),
47
47
  'cert_type' => fetch(:cert_type, 'pem'),
48
48
  'key_type' => fetch(:cert_type, 'key'),
49
- 'serve_static_files' => fetch(:serve_static_files, true),
49
+ 'serve_static_files' => fetch(:nginx_serve_static_files, true),
50
+ 'new_relic_support' => fetch(:nginx_new_relic_support, false)
50
51
  }
51
52
 
52
53
  sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
@@ -76,7 +77,7 @@ Capistrano::Configuration.instance.load do
76
77
  end
77
78
 
78
79
  task :uninstall do
79
- protocol = fetch(:protocol, nil)
80
+ protocol = fetch(:nginx_protocol, nil)
80
81
  sites_path = fetch(:nginx_sites_enabled_path, "/etc/nginx/sites-enabled")
81
82
 
82
83
  with_user(fetch(:setup_user, user)) do
@@ -5,7 +5,8 @@ Capistrano::Configuration.instance.load do
5
5
  task :create_config_files, :roles => :app do
6
6
  run "mkdir -p #{shared_path}/config/"
7
7
  config_file_to_setup.each do |config_file|
8
- put(File.read(config_file_path(config_file)), "#{shared_path}/config/#{config_file}", :via => :scp)
8
+ local_path = config_file_path(config_file)
9
+ put(File.read(local_path), "#{shared_path}/config/#{config_file}", :via => :scp) if local_path
9
10
  end
10
11
  end
11
12
 
@@ -20,7 +21,7 @@ Capistrano::Configuration.instance.load do
20
21
 
21
22
  task :database, :roles => :db do
22
23
  _cset :db_admin_user, 'root'
23
- _cset :db_admin_password, Capistrano::CLI.password_prompt("Type your mysql password for user '#{db_admin_user}' (not set if empty): ")
24
+ _cset :db_admin_password, Capistrano::CLI.password_prompt("\e[0;31mType your mysql password for user '#{db_admin_user}' (not set if empty and ENTER): ")
24
25
  _cset :db_name, application.gsub(/\W+/, '')[0..5] + '_' + rails_env.to_s
25
26
  _cset :db_user_name, application
26
27
  _cset :db_user_password, ''
@@ -44,8 +45,12 @@ end
44
45
 
45
46
  def config_file_path(config_file_name)
46
47
  config_file = "#{rails_root}/config/#{config_file_name}"
47
- raise "No config file '#{config_file}'" unless File.exists? config_file
48
- config_file
48
+ if File.exists? config_file
49
+ config_file
50
+ else
51
+ puts "\e[0;31mNo config file '#{config_file}'"
52
+ nil
53
+ end
49
54
  end
50
55
 
51
56
  def database_exits?
@@ -4,7 +4,7 @@ Capistrano::Configuration.instance.load do
4
4
  desc <<-DESC
5
5
  Symlink shared directories and files.
6
6
  DESC
7
- task :symlink_dependencies, :roles => :web, :except => {:no_release => true} do
7
+ task :symlink_dependencies, :roles => :app, :except => {:no_release => true} do
8
8
  shared_directories_to_link = fetch(:shared_directories_to_link, [])
9
9
  directories_to_create = fetch(:directories_to_create, [])
10
10
  files_to_delete = fetch(:files_to_delete, [])
@@ -103,29 +103,28 @@ module Unicorn
103
103
  end
104
104
  end
105
105
  end
106
- end
107
-
108
- after "deploy:restart", "unicorn:reload"
109
106
 
110
- desc "Setup unicorn"
111
- task :setup, :roles => :app, :except => {:no_release => true} do
112
- run "mkdir -p \"#{shared_path}/config/unicorn\""
113
- config_path = "#{shared_path}/config/unicorn/#{rails_env}.rb"
114
- template_path = File.expand_path('../../templates/unicorn/unicorn.rb.erb', __FILE__)
115
- vars = {
116
- 'application' => application,
117
- 'current_path' => current_path,
118
- 'unicorn_pid' => unicorn_pid,
119
- 'unicorn_std_log' => unicorn_std_log,
120
- 'unicorn_err_log' => unicorn_err_log,
121
- 'stage' => stage,
122
- 'unicorn_listen_backlog' => unicorn_listen_backlog,
123
- 'unicorn_worker_processes' => unicorn_worker_processes,
124
- 'sidekiq_redis_count' => sidekiq_redis_count
125
- }
126
- put(render_erb_template(template_path, vars), config_path)
107
+ desc "Setup unicorn"
108
+ task :setup, :roles => :app, :except => {:no_release => true} do
109
+ run "mkdir -p \"#{shared_path}/config/unicorn\""
110
+ config_path = "#{shared_path}/config/unicorn/#{rails_env}.rb"
111
+ template_path = File.expand_path('../../templates/unicorn/unicorn.rb.erb', __FILE__)
112
+ vars = {
113
+ 'application' => application,
114
+ 'current_path' => current_path,
115
+ 'unicorn_pid' => unicorn_pid,
116
+ 'unicorn_std_log' => unicorn_std_log,
117
+ 'unicorn_err_log' => unicorn_err_log,
118
+ 'stage' => stage,
119
+ 'unicorn_listen_backlog' => unicorn_listen_backlog,
120
+ 'unicorn_worker_processes' => unicorn_worker_processes,
121
+ 'sidekiq_redis_count' => sidekiq_redis_count
122
+ }
123
+ put(render_erb_template(template_path, vars), config_path)
124
+ end
127
125
  end
128
126
 
127
+ after :"deploy:restart", :"unicorn:reload"
129
128
  after :"deploy:setup", :"unicorn:setup";
130
129
 
131
130
  namespace :deploy do
@@ -20,71 +20,53 @@ upstream <%= application %>_<%= stage %>_<%= protocol %>_server {
20
20
  <%= optional_nginx_https_content if protocol == 'https' %>
21
21
 
22
22
  server {
23
-
24
23
  server_name <%= domain %>;
25
-
26
24
  <% if protocol == 'https' %>
27
-
28
25
  listen 443 ssl;
29
26
 
30
27
  ssl_certificate <%= nginx_cert_dir %>/<%= application %>_cert.<%= cert_type %>;
31
28
  ssl_certificate_key <%= nginx_cert_dir %>/<%= application %>_cert.<%= key_type %>;
32
-
33
29
  #ssl_ciphers SSLv3+HIGH:RC4+MEDIUM:!aNULL:!eNULL:!3DES:!MD5:@STRENGTH;
34
30
  #ssl_prefer_server_ciphers on;
35
31
  #ssl_protocols SSLv3;
36
32
  #ssl_session_cache shared:SSL:10m;
37
33
 
38
34
  keepalive_timeout 70;
39
-
40
35
  <% else %>
41
-
42
36
  listen 80;
43
37
 
44
38
  # ~2 seconds is often enough for most folks to parse HTML/CSS and
45
39
  # retrieve needed images/icons/frames, connections are cheap in
46
40
  # nginx so increasing this is generally safe...
47
41
  #keepalive_timeout 5;
48
-
49
42
  <% end %>
50
43
 
51
44
  client_max_body_size 4G;
52
45
 
53
46
  <% if serve_static_files %>
54
-
55
47
  # path for static files
56
48
  root <%= project_root %>/public;
57
-
58
49
  <% if with_file_expire_max %>
59
50
  location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
60
51
  expires max;
61
52
  break;
62
53
  }
63
54
  <% end %>
64
-
65
55
  <% end %>
56
+ <%= optional_http_content if protocol == 'http' %>
57
+ <%= optional_https_content if protocol == 'https' %>
66
58
 
67
- <%= optional_http_content if protocol == 'http' %>
68
- <%= optional_https_content if protocol == 'https' %>
59
+ location / {
60
+ # headers we want forwarded to the upstream server
69
61
 
70
- # Prefer to serve static files directly from nginx to avoid unnecessary
71
- # data copies from the application server.
72
- #
73
- # try_files directive appeared in in nginx 0.7.27 and has stabilized
74
- # over time. Older versions of nginx (e.g. 0.6.x) requires
75
- # "if (!-f $request_filename)" which was less efficient:
76
- # http://bogomips.org/unicorn.git/tree/examples/nginx.conf?id=v3.3.1#n127
77
- try_files $uri/index.html $uri.html $uri @app;
62
+ <% if new_relic_support %>
63
+ proxy_set_header X-Queue-Start "t=${msec}000";
64
+ <% end %>
78
65
 
79
- location / {
80
66
  # an HTTP header important enough to have its own Wikipedia entry:
81
67
  # http://en.wikipedia.org/wiki/X-Forwarded-For
82
68
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
83
69
 
84
- # enable this if and only if you use HTTPS, this helps Rack
85
- # set the proper protocol for doing redirects:
86
- # proxy_set_header X-Forwarded-Proto https;
87
-
88
70
  # pass the Host: header from the client right along so redirects
89
71
  # can be set properly within the Rack application
90
72
  proxy_set_header Host $http_host;
@@ -106,6 +88,8 @@ server {
106
88
  # proxy_buffering off;
107
89
 
108
90
  <% if protocol == 'https' %>
91
+ # enable this if and only if you use HTTPS, this helps Rack
92
+ # set the proper protocol for doing redirects:
109
93
  # This makes sure that Rack::SslEnforcer knows it's being accessed over SSL.
110
94
  proxy_set_header X-Forwarded-Proto https;
111
95
  <% end %>
@@ -114,11 +98,10 @@ server {
114
98
  proxy_pass http://<%= application %>_<%= stage %>_<%= protocol %>_server;
115
99
  break;
116
100
  }
117
-
118
- <% if auth_basic_title %>
101
+ <% if auth_basic_title %>
119
102
  auth_basic "<%= auth_basic_title %>";
120
103
  auth_basic_user_file <%= auth_basic_password_file %>;
121
- <% end %>
104
+ <% end %>
122
105
  }
123
106
 
124
107
  # Rails error pages
@@ -1,3 +1,3 @@
1
1
  module Caploy
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
metadata CHANGED
@@ -1,25 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: caploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
5
4
  prerelease:
5
+ version: 0.1.6
6
6
  platform: ruby
7
7
  authors:
8
8
  - Michael Schiller
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-07 00:00:00.000000000 Z
12
+ date: 2013-02-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gemcutter
16
+ type: :runtime
16
17
  requirement: !ruby/object:Gem::Requirement
17
18
  none: false
18
19
  requirements:
19
20
  - - ! '>='
20
21
  - !ruby/object:Gem::Version
21
22
  version: '0'
22
- type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
@@ -29,13 +29,13 @@ dependencies:
29
29
  version: '0'
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: capistrano
32
+ type: :runtime
32
33
  requirement: !ruby/object:Gem::Requirement
33
34
  none: false
34
35
  requirements:
35
36
  - - ! '>='
36
37
  - !ruby/object:Gem::Version
37
38
  version: 2.13.4
38
- type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
41
  none: false
@@ -45,13 +45,13 @@ dependencies:
45
45
  version: 2.13.4
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: capistrano-ext
48
+ type: :runtime
48
49
  requirement: !ruby/object:Gem::Requirement
49
50
  none: false
50
51
  requirements:
51
52
  - - ! '>='
52
53
  - !ruby/object:Gem::Version
53
54
  version: 1.2.1
54
- type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  none: false
@@ -61,13 +61,13 @@ dependencies:
61
61
  version: 1.2.1
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: capistrano_colors
64
+ type: :runtime
64
65
  requirement: !ruby/object:Gem::Requirement
65
66
  none: false
66
67
  requirements:
67
68
  - - ! '>='
68
69
  - !ruby/object:Gem::Version
69
70
  version: 0.5.5
70
- type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
@@ -77,13 +77,13 @@ dependencies:
77
77
  version: 0.5.5
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: capistrano-file_db
80
+ type: :runtime
80
81
  requirement: !ruby/object:Gem::Requirement
81
82
  none: false
82
83
  requirements:
83
84
  - - ! '>='
84
85
  - !ruby/object:Gem::Version
85
86
  version: 0.1.0
86
- type: :runtime
87
87
  prerelease: false
88
88
  version_requirements: !ruby/object:Gem::Requirement
89
89
  none: false
@@ -93,13 +93,13 @@ dependencies:
93
93
  version: 0.1.0
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: capistrano-uptodate
96
+ type: :runtime
96
97
  requirement: !ruby/object:Gem::Requirement
97
98
  none: false
98
99
  requirements:
99
100
  - - ! '>='
100
101
  - !ruby/object:Gem::Version
101
102
  version: 0.0.2
102
- type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  none: false
@@ -109,13 +109,13 @@ dependencies:
109
109
  version: 0.0.2
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: rvm-capistrano
112
+ type: :runtime
112
113
  requirement: !ruby/object:Gem::Requirement
113
114
  none: false
114
115
  requirements:
115
116
  - - ! '>='
116
117
  - !ruby/object:Gem::Version
117
118
  version: 1.2.2
118
- type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  none: false
@@ -125,13 +125,13 @@ dependencies:
125
125
  version: 1.2.2
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: erubis
128
+ type: :runtime
128
129
  requirement: !ruby/object:Gem::Requirement
129
130
  none: false
130
131
  requirements:
131
132
  - - ! '>='
132
133
  - !ruby/object:Gem::Version
133
134
  version: '0'
134
- type: :runtime
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  none: false