capistrano-exts 1.1.2 → 1.1.3
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.
- data/examples/php_fpm/deploy/development.rb +37 -3
- data/examples/php_fpm/deploy/production.rb +37 -3
- data/examples/php_fpm/deploy/staging.rb +37 -3
- data/examples/rails_passenger/deploy/development.rb +37 -3
- data/examples/rails_passenger/deploy/production.rb +37 -3
- data/examples/rails_passenger/deploy/staging.rb +37 -3
- data/examples/rails_reverse_proxy/deploy/development.rb +37 -3
- data/examples/rails_reverse_proxy/deploy/production.rb +37 -3
- data/examples/rails_reverse_proxy/deploy/staging.rb +36 -3
- data/lib/capistrano-exts/receipts/contao.rb +48 -14
- data/lib/capistrano-exts/templates/multistage.rb +40 -5
- data/lib/capistrano-exts/version.rb +1 -1
- metadata +21 -21
@@ -23,10 +23,30 @@ set :branch, "master"
|
|
23
23
|
set :use_sudo, false
|
24
24
|
|
25
25
|
# Define deployments options
|
26
|
-
|
26
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
27
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
28
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
29
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
30
|
+
|
31
|
+
# How should we deploy?
|
32
|
+
# Valid options:
|
33
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
34
|
+
# host. This is the default deployment strategy for Capistrano.
|
35
|
+
#
|
36
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
37
|
+
# compressing it, copying the file to each target host, and
|
38
|
+
# uncompressing it to the deployment directory.
|
39
|
+
# NOTE: This strategy has more options you can configure, please refer
|
40
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
41
|
+
# source or documentation for more information
|
42
|
+
#
|
43
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
44
|
+
#
|
45
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
46
|
+
# source code on each remote server. Each deploy simply updates
|
47
|
+
# the cached checkout, and then does a copy from the cached
|
48
|
+
# copy to the final deployment location.
|
27
49
|
set :deploy_via, :remote_cache
|
28
|
-
set :logs_path, "#{deploy_to}/logs"
|
29
|
-
set :public_path, -> { "#{current_path}/public" }
|
30
50
|
|
31
51
|
# Keep only the last 5 releases
|
32
52
|
set :keep_releases, 5
|
@@ -149,5 +169,19 @@ set :php_fpm_port, '9000'
|
|
149
169
|
# => What is the path to the socket file
|
150
170
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
151
171
|
|
172
|
+
#
|
173
|
+
#
|
174
|
+
#############
|
175
|
+
|
176
|
+
#############
|
177
|
+
# Contao
|
178
|
+
#
|
179
|
+
|
180
|
+
# Where do you store contao contents ?
|
181
|
+
# The contents are stored in the shared path because they are uploaded from
|
182
|
+
# contao's admin section
|
183
|
+
set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
184
|
+
|
185
|
+
#
|
152
186
|
#
|
153
187
|
#############
|
@@ -23,10 +23,30 @@ set :branch, "production"
|
|
23
23
|
set :use_sudo, false
|
24
24
|
|
25
25
|
# Define deployments options
|
26
|
-
|
26
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
27
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
28
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
29
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
30
|
+
|
31
|
+
# How should we deploy?
|
32
|
+
# Valid options:
|
33
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
34
|
+
# host. This is the default deployment strategy for Capistrano.
|
35
|
+
#
|
36
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
37
|
+
# compressing it, copying the file to each target host, and
|
38
|
+
# uncompressing it to the deployment directory.
|
39
|
+
# NOTE: This strategy has more options you can configure, please refer
|
40
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
41
|
+
# source or documentation for more information
|
42
|
+
#
|
43
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
44
|
+
#
|
45
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
46
|
+
# source code on each remote server. Each deploy simply updates
|
47
|
+
# the cached checkout, and then does a copy from the cached
|
48
|
+
# copy to the final deployment location.
|
27
49
|
set :deploy_via, :remote_cache
|
28
|
-
set :logs_path, "#{deploy_to}/logs"
|
29
|
-
set :public_path, -> { "#{current_path}/public" }
|
30
50
|
|
31
51
|
# Keep only the last 5 releases
|
32
52
|
set :keep_releases, 5
|
@@ -149,5 +169,19 @@ set :php_fpm_port, '9000'
|
|
149
169
|
# => What is the path to the socket file
|
150
170
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
151
171
|
|
172
|
+
#
|
173
|
+
#
|
174
|
+
#############
|
175
|
+
|
176
|
+
#############
|
177
|
+
# Contao
|
178
|
+
#
|
179
|
+
|
180
|
+
# Where do you store contao contents ?
|
181
|
+
# The contents are stored in the shared path because they are uploaded from
|
182
|
+
# contao's admin section
|
183
|
+
set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
184
|
+
|
185
|
+
#
|
152
186
|
#
|
153
187
|
#############
|
@@ -23,10 +23,30 @@ set :branch, "staging"
|
|
23
23
|
set :use_sudo, false
|
24
24
|
|
25
25
|
# Define deployments options
|
26
|
-
|
26
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
27
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
28
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
29
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
30
|
+
|
31
|
+
# How should we deploy?
|
32
|
+
# Valid options:
|
33
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
34
|
+
# host. This is the default deployment strategy for Capistrano.
|
35
|
+
#
|
36
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
37
|
+
# compressing it, copying the file to each target host, and
|
38
|
+
# uncompressing it to the deployment directory.
|
39
|
+
# NOTE: This strategy has more options you can configure, please refer
|
40
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
41
|
+
# source or documentation for more information
|
42
|
+
#
|
43
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
44
|
+
#
|
45
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
46
|
+
# source code on each remote server. Each deploy simply updates
|
47
|
+
# the cached checkout, and then does a copy from the cached
|
48
|
+
# copy to the final deployment location.
|
27
49
|
set :deploy_via, :remote_cache
|
28
|
-
set :logs_path, "#{deploy_to}/logs"
|
29
|
-
set :public_path, -> { "#{current_path}/public" }
|
30
50
|
|
31
51
|
# Keep only the last 5 releases
|
32
52
|
set :keep_releases, 5
|
@@ -149,5 +169,19 @@ set :php_fpm_port, '9000'
|
|
149
169
|
# => What is the path to the socket file
|
150
170
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
151
171
|
|
172
|
+
#
|
173
|
+
#
|
174
|
+
#############
|
175
|
+
|
176
|
+
#############
|
177
|
+
# Contao
|
178
|
+
#
|
179
|
+
|
180
|
+
# Where do you store contao contents ?
|
181
|
+
# The contents are stored in the shared path because they are uploaded from
|
182
|
+
# contao's admin section
|
183
|
+
set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
184
|
+
|
185
|
+
#
|
152
186
|
#
|
153
187
|
#############
|
@@ -23,10 +23,30 @@ set :branch, "master"
|
|
23
23
|
set :use_sudo, false
|
24
24
|
|
25
25
|
# Define deployments options
|
26
|
-
|
26
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
27
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
28
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
29
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
30
|
+
|
31
|
+
# How should we deploy?
|
32
|
+
# Valid options:
|
33
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
34
|
+
# host. This is the default deployment strategy for Capistrano.
|
35
|
+
#
|
36
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
37
|
+
# compressing it, copying the file to each target host, and
|
38
|
+
# uncompressing it to the deployment directory.
|
39
|
+
# NOTE: This strategy has more options you can configure, please refer
|
40
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
41
|
+
# source or documentation for more information
|
42
|
+
#
|
43
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
44
|
+
#
|
45
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
46
|
+
# source code on each remote server. Each deploy simply updates
|
47
|
+
# the cached checkout, and then does a copy from the cached
|
48
|
+
# copy to the final deployment location.
|
27
49
|
set :deploy_via, :remote_cache
|
28
|
-
set :logs_path, "#{deploy_to}/logs"
|
29
|
-
set :public_path, -> { "#{current_path}/public" }
|
30
50
|
|
31
51
|
# Keep only the last 5 releases
|
32
52
|
set :keep_releases, 5
|
@@ -149,5 +169,19 @@ set :web_server_mode, :passenger
|
|
149
169
|
# => What is the path to the socket file
|
150
170
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
151
171
|
|
172
|
+
#
|
173
|
+
#
|
174
|
+
#############
|
175
|
+
|
176
|
+
#############
|
177
|
+
# Contao
|
178
|
+
#
|
179
|
+
|
180
|
+
# Where do you store contao contents ?
|
181
|
+
# The contents are stored in the shared path because they are uploaded from
|
182
|
+
# contao's admin section
|
183
|
+
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
184
|
+
|
185
|
+
#
|
152
186
|
#
|
153
187
|
#############
|
@@ -23,10 +23,30 @@ set :branch, "production"
|
|
23
23
|
set :use_sudo, false
|
24
24
|
|
25
25
|
# Define deployments options
|
26
|
-
|
26
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
27
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
28
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
29
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
30
|
+
|
31
|
+
# How should we deploy?
|
32
|
+
# Valid options:
|
33
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
34
|
+
# host. This is the default deployment strategy for Capistrano.
|
35
|
+
#
|
36
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
37
|
+
# compressing it, copying the file to each target host, and
|
38
|
+
# uncompressing it to the deployment directory.
|
39
|
+
# NOTE: This strategy has more options you can configure, please refer
|
40
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
41
|
+
# source or documentation for more information
|
42
|
+
#
|
43
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
44
|
+
#
|
45
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
46
|
+
# source code on each remote server. Each deploy simply updates
|
47
|
+
# the cached checkout, and then does a copy from the cached
|
48
|
+
# copy to the final deployment location.
|
27
49
|
set :deploy_via, :remote_cache
|
28
|
-
set :logs_path, "#{deploy_to}/logs"
|
29
|
-
set :public_path, -> { "#{current_path}/public" }
|
30
50
|
|
31
51
|
# Keep only the last 5 releases
|
32
52
|
set :keep_releases, 5
|
@@ -149,5 +169,19 @@ set :web_server_mode, :passenger
|
|
149
169
|
# => What is the path to the socket file
|
150
170
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
151
171
|
|
172
|
+
#
|
173
|
+
#
|
174
|
+
#############
|
175
|
+
|
176
|
+
#############
|
177
|
+
# Contao
|
178
|
+
#
|
179
|
+
|
180
|
+
# Where do you store contao contents ?
|
181
|
+
# The contents are stored in the shared path because they are uploaded from
|
182
|
+
# contao's admin section
|
183
|
+
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
184
|
+
|
185
|
+
#
|
152
186
|
#
|
153
187
|
#############
|
@@ -23,10 +23,30 @@ set :branch, "staging"
|
|
23
23
|
set :use_sudo, false
|
24
24
|
|
25
25
|
# Define deployments options
|
26
|
-
|
26
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
27
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
28
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
29
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
30
|
+
|
31
|
+
# How should we deploy?
|
32
|
+
# Valid options:
|
33
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
34
|
+
# host. This is the default deployment strategy for Capistrano.
|
35
|
+
#
|
36
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
37
|
+
# compressing it, copying the file to each target host, and
|
38
|
+
# uncompressing it to the deployment directory.
|
39
|
+
# NOTE: This strategy has more options you can configure, please refer
|
40
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
41
|
+
# source or documentation for more information
|
42
|
+
#
|
43
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
44
|
+
#
|
45
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
46
|
+
# source code on each remote server. Each deploy simply updates
|
47
|
+
# the cached checkout, and then does a copy from the cached
|
48
|
+
# copy to the final deployment location.
|
27
49
|
set :deploy_via, :remote_cache
|
28
|
-
set :logs_path, "#{deploy_to}/logs"
|
29
|
-
set :public_path, -> { "#{current_path}/public" }
|
30
50
|
|
31
51
|
# Keep only the last 5 releases
|
32
52
|
set :keep_releases, 5
|
@@ -149,5 +169,19 @@ set :web_server_mode, :passenger
|
|
149
169
|
# => What is the path to the socket file
|
150
170
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
151
171
|
|
172
|
+
#
|
173
|
+
#
|
174
|
+
#############
|
175
|
+
|
176
|
+
#############
|
177
|
+
# Contao
|
178
|
+
#
|
179
|
+
|
180
|
+
# Where do you store contao contents ?
|
181
|
+
# The contents are stored in the shared path because they are uploaded from
|
182
|
+
# contao's admin section
|
183
|
+
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
184
|
+
|
185
|
+
#
|
152
186
|
#
|
153
187
|
#############
|
@@ -23,10 +23,30 @@ set :branch, "master"
|
|
23
23
|
set :use_sudo, false
|
24
24
|
|
25
25
|
# Define deployments options
|
26
|
-
|
26
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
27
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
28
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
29
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
30
|
+
|
31
|
+
# How should we deploy?
|
32
|
+
# Valid options:
|
33
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
34
|
+
# host. This is the default deployment strategy for Capistrano.
|
35
|
+
#
|
36
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
37
|
+
# compressing it, copying the file to each target host, and
|
38
|
+
# uncompressing it to the deployment directory.
|
39
|
+
# NOTE: This strategy has more options you can configure, please refer
|
40
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
41
|
+
# source or documentation for more information
|
42
|
+
#
|
43
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
44
|
+
#
|
45
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
46
|
+
# source code on each remote server. Each deploy simply updates
|
47
|
+
# the cached checkout, and then does a copy from the cached
|
48
|
+
# copy to the final deployment location.
|
27
49
|
set :deploy_via, :remote_cache
|
28
|
-
set :logs_path, "#{deploy_to}/logs"
|
29
|
-
set :public_path, -> { "#{current_path}/public" }
|
30
50
|
|
31
51
|
# Keep only the last 5 releases
|
32
52
|
set :keep_releases, 5
|
@@ -149,5 +169,19 @@ set :web_server_mode, :reverse_proxy
|
|
149
169
|
# => What is the path to the socket file
|
150
170
|
set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
151
171
|
|
172
|
+
#
|
173
|
+
#
|
174
|
+
#############
|
175
|
+
|
176
|
+
#############
|
177
|
+
# Contao
|
178
|
+
#
|
179
|
+
|
180
|
+
# Where do you store contao contents ?
|
181
|
+
# The contents are stored in the shared path because they are uploaded from
|
182
|
+
# contao's admin section
|
183
|
+
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
184
|
+
|
185
|
+
#
|
152
186
|
#
|
153
187
|
#############
|
@@ -23,10 +23,30 @@ set :branch, "production"
|
|
23
23
|
set :use_sudo, false
|
24
24
|
|
25
25
|
# Define deployments options
|
26
|
-
|
26
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
27
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
28
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
29
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
30
|
+
|
31
|
+
# How should we deploy?
|
32
|
+
# Valid options:
|
33
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
34
|
+
# host. This is the default deployment strategy for Capistrano.
|
35
|
+
#
|
36
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
37
|
+
# compressing it, copying the file to each target host, and
|
38
|
+
# uncompressing it to the deployment directory.
|
39
|
+
# NOTE: This strategy has more options you can configure, please refer
|
40
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
41
|
+
# source or documentation for more information
|
42
|
+
#
|
43
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
44
|
+
#
|
45
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
46
|
+
# source code on each remote server. Each deploy simply updates
|
47
|
+
# the cached checkout, and then does a copy from the cached
|
48
|
+
# copy to the final deployment location.
|
27
49
|
set :deploy_via, :remote_cache
|
28
|
-
set :logs_path, "#{deploy_to}/logs"
|
29
|
-
set :public_path, -> { "#{current_path}/public" }
|
30
50
|
|
31
51
|
# Keep only the last 5 releases
|
32
52
|
set :keep_releases, 5
|
@@ -149,5 +169,19 @@ set :web_server_mode, :reverse_proxy
|
|
149
169
|
# => What is the path to the socket file
|
150
170
|
set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
151
171
|
|
172
|
+
#
|
173
|
+
#
|
174
|
+
#############
|
175
|
+
|
176
|
+
#############
|
177
|
+
# Contao
|
178
|
+
#
|
179
|
+
|
180
|
+
# Where do you store contao contents ?
|
181
|
+
# The contents are stored in the shared path because they are uploaded from
|
182
|
+
# contao's admin section
|
183
|
+
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
184
|
+
|
185
|
+
#
|
152
186
|
#
|
153
187
|
#############
|
@@ -23,10 +23,29 @@ set :branch, "staging"
|
|
23
23
|
set :use_sudo, false
|
24
24
|
|
25
25
|
# Define deployments options
|
26
|
-
|
26
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
27
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
28
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
29
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
30
|
+
# How should we deploy?
|
31
|
+
# Valid options:
|
32
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
33
|
+
# host. This is the default deployment strategy for Capistrano.
|
34
|
+
#
|
35
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
36
|
+
# compressing it, copying the file to each target host, and
|
37
|
+
# uncompressing it to the deployment directory.
|
38
|
+
# NOTE: This strategy has more options you can configure, please refer
|
39
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
40
|
+
# source or documentation for more information
|
41
|
+
#
|
42
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
43
|
+
#
|
44
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
45
|
+
# source code on each remote server. Each deploy simply updates
|
46
|
+
# the cached checkout, and then does a copy from the cached
|
47
|
+
# copy to the final deployment location.
|
27
48
|
set :deploy_via, :remote_cache
|
28
|
-
set :logs_path, "#{deploy_to}/logs"
|
29
|
-
set :public_path, -> { "#{current_path}/public" }
|
30
49
|
|
31
50
|
# Keep only the last 5 releases
|
32
51
|
set :keep_releases, 5
|
@@ -149,5 +168,19 @@ set :web_server_mode, :reverse_proxy
|
|
149
168
|
# => What is the path to the socket file
|
150
169
|
set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
151
170
|
|
171
|
+
#
|
172
|
+
#
|
173
|
+
#############
|
174
|
+
|
175
|
+
#############
|
176
|
+
# Contao
|
177
|
+
#
|
178
|
+
|
179
|
+
# Where do you store contao contents ?
|
180
|
+
# The contents are stored in the shared path because they are uploaded from
|
181
|
+
# contao's admin section
|
182
|
+
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
183
|
+
|
184
|
+
#
|
152
185
|
#
|
153
186
|
#############
|
@@ -8,6 +8,9 @@ unless Capistrano::Configuration.respond_to?(:instance)
|
|
8
8
|
end
|
9
9
|
|
10
10
|
Capistrano::Configuration.instance(:must_exist).load do
|
11
|
+
# Prevent capistrano from creating log, system and pids folders.
|
12
|
+
set :shared_children, Array.new
|
13
|
+
|
11
14
|
namespace :deploy do
|
12
15
|
desc "Empty task, overriden by #{__FILE__}"
|
13
16
|
task :finalize_update do
|
@@ -19,18 +22,19 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
19
22
|
desc "[internal] Setup contao shared contents"
|
20
23
|
task :setup, :roles => :app, :except => { :no_release => true } do
|
21
24
|
run <<-CMD
|
22
|
-
#{try_sudo} mkdir -p #{shared_path}/
|
23
|
-
#{try_sudo} mkdir -p #{shared_path}/
|
24
|
-
#{try_sudo} mkdir -p #{shared_path}/
|
25
|
-
#{try_sudo} mkdir -p #{shared_path}/
|
26
|
-
#{try_sudo} mkdir -p #{shared_path}/
|
27
|
-
#{try_sudo} mkdir -p #{shared_path}/
|
25
|
+
#{try_sudo} mkdir -p #{shared_path}/logs &&
|
26
|
+
#{try_sudo} mkdir -p #{shared_path}/config &&
|
27
|
+
#{try_sudo} mkdir -p #{shared_path}/contents &&
|
28
|
+
#{try_sudo} mkdir -p #{shared_path}/contents/image &&
|
29
|
+
#{try_sudo} mkdir -p #{shared_path}/contents/video &&
|
30
|
+
#{try_sudo} mkdir -p #{shared_path}/contents/audio &&
|
31
|
+
#{try_sudo} mkdir -p #{shared_path}/contents/pdf
|
28
32
|
CMD
|
29
33
|
end
|
30
34
|
|
31
35
|
desc "[internal] Setup contao's localconfig"
|
32
36
|
task :setup_localconfig, :roles => :app, :except => { :no_release => true } do
|
33
|
-
on_rollback { run "rm -f #{shared_path}/localconfig.php" }
|
37
|
+
on_rollback { run "rm -f #{shared_path}/config/localconfig.php" }
|
34
38
|
|
35
39
|
localconfig = File.read("public/system/config/localconfig.php.sample")
|
36
40
|
mysql_credentials = fetch :mysql_credentials
|
@@ -48,17 +52,46 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
48
52
|
localconfig.gsub!(/#DB_NAME#/, mysql_db_name)
|
49
53
|
end
|
50
54
|
|
51
|
-
put localconfig, "#{shared_path}/localconfig.php"
|
55
|
+
put localconfig, "#{shared_path}/config/localconfig.php"
|
56
|
+
end
|
57
|
+
|
58
|
+
desc "[internal] Setup .htaccess"
|
59
|
+
task :setup_htaccess do
|
60
|
+
unless remote_file_exists?("#{fetch :shared_path}/config/htaccess.txt")
|
61
|
+
begin
|
62
|
+
run <<-CMD
|
63
|
+
#{try_sudo} cp #{fetch :latest_release}/public/.htaccess.default #{fetch :shared_path}/config/htaccess.txt
|
64
|
+
CMD
|
65
|
+
rescue
|
66
|
+
run <<-CMD
|
67
|
+
#{try_sudo} touch #{fetch :shared_path}/config/htaccess.txt
|
68
|
+
CMD
|
69
|
+
end
|
70
|
+
end
|
52
71
|
end
|
53
72
|
|
73
|
+
desc "[internal] Fix contao's symlinks to the shared path"
|
54
74
|
task :fix_links, :roles => :app, :except => { :no_release => true } do
|
75
|
+
contents_path = fetch :contents_path, "#{fetch :public_path}/tl_files/contents"
|
76
|
+
|
77
|
+
# Remove files
|
78
|
+
run <<-CMD
|
79
|
+
#{try_sudo} rm -f #{contents_path} &&
|
80
|
+
#{try_sudo} rm -rf #{fetch :latest_release}/public/system/logs &&
|
81
|
+
#{try_sudo} rm -f #{fetch :latest_release}/public/system/config/localconfig.php &&
|
82
|
+
#{try_sudo} rm -f #{fetch :latest_release}/public/.htaccess
|
83
|
+
CMD
|
84
|
+
|
85
|
+
run <<-CMD
|
86
|
+
mkdir -p #{File.dirname(contents_path)}
|
87
|
+
CMD
|
88
|
+
|
89
|
+
# Create symlinks
|
55
90
|
run <<-CMD
|
56
|
-
#{try_sudo}
|
57
|
-
#{try_sudo}
|
58
|
-
#{try_sudo} ln -nsf #{fetch :shared_path}/
|
59
|
-
#{try_sudo} ln -nsf #{fetch :shared_path}/
|
60
|
-
#{try_sudo} ln -nsf #{fetch :shared_path}/localconfig.php #{fetch :latest_release}/public/system/config/localconfig.php &&
|
61
|
-
#{try_sudo} ln -nsf #{fetch :shared_path}/log #{fetch :latest_release}/log
|
91
|
+
#{try_sudo} ln -nsf #{fetch :shared_path}/contents #{contents_path} &&
|
92
|
+
#{try_sudo} ln -nsf #{fetch :shared_path}/config/htaccess.txt #{fetch :latest_release}/public/.htaccess &&
|
93
|
+
#{try_sudo} ln -nsf #{fetch :shared_path}/config/localconfig.php #{fetch :latest_release}/public/system/config/localconfig.php &&
|
94
|
+
#{try_sudo} ln -nsf #{fetch :shared_path}/logs #{fetch :latest_release}/public/system/logs
|
62
95
|
CMD
|
63
96
|
end
|
64
97
|
end
|
@@ -67,6 +100,7 @@ Capistrano::Configuration.instance(:must_exist).load do
|
|
67
100
|
after "deploy:setup", "contao:setup"
|
68
101
|
after "contao:setup", "contao:setup_localconfig"
|
69
102
|
after "deploy:finalize_update", "contao:fix_links"
|
103
|
+
before "contao:fix_links", "contao:setup_htaccess"
|
70
104
|
after "contao:fix_links", "deploy:cleanup"
|
71
105
|
after "deploy:restart", "deploy:fix_permissions"
|
72
106
|
|
@@ -20,10 +20,30 @@ set :branch, "master"
|
|
20
20
|
set :use_sudo, false
|
21
21
|
|
22
22
|
# Define deployments options
|
23
|
-
|
23
|
+
# NOTE: Do not use current_path here but use latest_release instead.
|
24
|
+
set :deploy_to, -> { "/home/vhosts/#{fetch :stage}/#{fetch :application}" }
|
25
|
+
set :logs_path, -> { "#{fetch :deploy_to}/logs" }
|
26
|
+
set :public_path, -> { "#{fetch :latest_release}/public" }
|
27
|
+
|
28
|
+
# How should we deploy?
|
29
|
+
# Valid options:
|
30
|
+
# => checkout: this deployment strategy does an SCM checkout on each target
|
31
|
+
# host. This is the default deployment strategy for Capistrano.
|
32
|
+
#
|
33
|
+
# => copy: this deployment strategy work by preparing the source code locally,
|
34
|
+
# compressing it, copying the file to each target host, and
|
35
|
+
# uncompressing it to the deployment directory.
|
36
|
+
# NOTE: This strategy has more options you can configure, please refer
|
37
|
+
# to capistrano/recipes/deploy/strategy/copy.rb (in capistrano)
|
38
|
+
# source or documentation for more information
|
39
|
+
#
|
40
|
+
# => export: this deployment strategy does an SCM export on each target host.
|
41
|
+
#
|
42
|
+
# => remote_cache: this deployment strategy keeps a cached checkout of the
|
43
|
+
# source code on each remote server. Each deploy simply updates
|
44
|
+
# the cached checkout, and then does a copy from the cached
|
45
|
+
# copy to the final deployment location.
|
24
46
|
set :deploy_via, :remote_cache
|
25
|
-
set :logs_path, "#{deploy_to}/logs"
|
26
|
-
set :public_path, -> { "#{current_path}/public" }
|
27
47
|
|
28
48
|
# Keep only the last 5 releases
|
29
49
|
set :keep_releases, 5
|
@@ -90,7 +110,7 @@ set :web_server_app, :nginx
|
|
90
110
|
# Absolute path to this application's web server configuration
|
91
111
|
# This gem suppose that you are already including files from the folder you're placing
|
92
112
|
# the config file in, if not the application won't be up after deployment
|
93
|
-
set :web_conf_file, -> { "/etc/nginx/#{fetch
|
113
|
+
set :web_conf_file, -> { "/etc/nginx/#{fetch :stage}/#{fetch :application}.conf" }
|
94
114
|
|
95
115
|
# Which port does the server runs on ?
|
96
116
|
set :web_server_listen_port, 80
|
@@ -109,7 +129,7 @@ set :web_server_indexes, %w(index.php index.html)
|
|
109
129
|
# web_server_auth_credentials is an array of user/password hashes, you can use
|
110
130
|
# gen_pass(length) in a Proc to generate a new password as shown below
|
111
131
|
#
|
112
|
-
# set :web_server_auth_file, -> { "/etc/nginx/htpasswds/#{fetch :application}.crypt" }
|
132
|
+
# set :web_server_auth_file, -> { "/etc/nginx/#{fetch :stage}/htpasswds/#{fetch :application}.crypt" }
|
113
133
|
# set :web_server_auth_credentials, [
|
114
134
|
# {user: 'user1', password: 'pass1'},
|
115
135
|
# {user: 'user2', password: -> { gen_pass(8) } },
|
@@ -147,5 +167,20 @@ set :web_server_mode, :reverse_proxy
|
|
147
167
|
# => What is the path to the socket file
|
148
168
|
# set :reverse_proxy_socket, -> { "#{shared_path}/sockets/unicorn.sock"}
|
149
169
|
|
170
|
+
#
|
171
|
+
#
|
172
|
+
#############
|
173
|
+
|
174
|
+
#############
|
175
|
+
# Contao
|
176
|
+
#
|
177
|
+
|
178
|
+
# Where do you store contao contents ?
|
179
|
+
# The contents are stored in the shared path because they are uploaded from
|
180
|
+
# contao's admin section
|
181
|
+
# Uncomment if necessary (default to public_path/tl_files/contents)
|
182
|
+
# set :contents_path, -> { "#{fetch :public_path}/tl_files/contents"}
|
183
|
+
|
184
|
+
#
|
150
185
|
#
|
151
186
|
#############
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-exts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-09-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
16
|
-
requirement: &
|
16
|
+
requirement: &2156618100 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 2.8.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2156618100
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: i18n
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152375480 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: 0.6.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152375480
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
requirement: &
|
38
|
+
requirement: &2152372740 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 3.1.0
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2152372740
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: guard
|
49
|
-
requirement: &
|
49
|
+
requirement: &2152370700 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 0.6.2
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2152370700
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: guard-bundler
|
60
|
-
requirement: &
|
60
|
+
requirement: &2156649860 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: 0.1.3
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2156649860
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: guard-rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &2156649400 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: 0.4.3
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2156649400
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rspec
|
82
|
-
requirement: &
|
82
|
+
requirement: &2156648940 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: 2.6.0
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2156648940
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: mocha
|
93
|
-
requirement: &
|
93
|
+
requirement: &2156648480 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 0.2.12
|
99
99
|
type: :development
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *2156648480
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: factory_girl
|
104
|
-
requirement: &
|
104
|
+
requirement: &2156648020 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: 2.0.5
|
110
110
|
type: :development
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *2156648020
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: faker19
|
115
|
-
requirement: &
|
115
|
+
requirement: &2156647560 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ! '>='
|
@@ -120,7 +120,7 @@ dependencies:
|
|
120
120
|
version: 1.0.5
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *2156647560
|
124
124
|
description: Handy extensions for Capistrano
|
125
125
|
email:
|
126
126
|
- wael.nasreddine@gmail.com
|