capistrano-magento2 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +1 -0
- data/lib/capistrano/magento2.rb +4 -4
- data/lib/capistrano/magento2/defaults.rb +1 -0
- data/lib/capistrano/magento2/version.rb +1 -1
- data/lib/capistrano/tasks/magento.rake +17 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c99400c3af7e1ed48ca398c4f6c4c79fb4298f93
|
4
|
+
data.tar.gz: 8e735613090124de7fd60e88f0d95d17909c0258
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ddb0e0e04bbe4e8e3d3a15931855ab3afa266267bedcc4ef02d89a71e1f0646544d4696d248cd41a3b1a900591f903d150025d745f3746c8e32188fdc087e04
|
7
|
+
data.tar.gz: 8382519a6b95039033d50b5af5c617ff407b84472fcaf0c25d34780b95df248b21f0c1365fcb9b3c909a13f7207fa770dc8c8bc77861f0af86f2322e2333b86d
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Capistrano::Magento2 Change Log
|
2
2
|
|
3
|
+
0.6.2
|
4
|
+
==========
|
5
|
+
|
6
|
+
* Added setting `:magento_deploy_jobs` to support configuring number of parallel static content deployment tasks
|
7
|
+
* Fixed issue where ./update dir may exist without a composer.json file, causing deployment failure
|
8
|
+
* Updated uses of bin/magento where output is parsed to include `--no-ansi` to eliminate potential failures
|
9
|
+
* Improved error reporting on static content deployment failure
|
10
|
+
|
3
11
|
0.6.1
|
4
12
|
==========
|
5
13
|
|
data/README.md
CHANGED
@@ -120,6 +120,7 @@ Before you can use Capistrano to deploy, you must configure the `config/deploy.r
|
|
120
120
|
| `:magento_deploy_cache_shared` | `true` | If true, cache operations are restricted to the primary node in setup role
|
121
121
|
| `:magento_deploy_languages` | `['en_US']` | Array of languages passed to static content deploy routine
|
122
122
|
| `:magento_deploy_themes` | `[]` | Array of themes passed to static content deploy (Magento 2.1.1 and later)
|
123
|
+
| `:magento_deploy_jobs` | `4` | Number of threads to use for static content deploy (Magento 2.1.1 and later)
|
123
124
|
| `:magento_deploy_composer` | `true` | Enables composer install behaviour in the built-in deploy routine
|
124
125
|
| `:magento_deploy_production` | `true` | Enables production specific DI compilation and static content generation
|
125
126
|
| `:magento_deploy_maintenance` | `true` | Enables use of maintenance mode while magento:setup:upgrade runs
|
data/lib/capistrano/magento2.rb
CHANGED
@@ -17,7 +17,7 @@ module Capistrano
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def disabled_modules
|
20
|
-
output = capture :magento, 'module:status'
|
20
|
+
output = capture :magento, 'module:status --no-ansi'
|
21
21
|
output = output.split("disabled modules:\n", 2)[1]
|
22
22
|
|
23
23
|
if output == nil or output.strip == "None"
|
@@ -48,19 +48,19 @@ module Capistrano
|
|
48
48
|
def static_content_deploy params
|
49
49
|
Helpers.set_pipefail
|
50
50
|
output = capture :magento,
|
51
|
-
"setup:static-content:deploy #{params} | stdbuf -o0 tr -d .",
|
51
|
+
"setup:static-content:deploy --no-ansi #{params} | stdbuf -o0 tr -d .",
|
52
52
|
verbosity: Logger::INFO
|
53
53
|
Helpers.unset_pipefail
|
54
54
|
|
55
55
|
# String based error checking is here to catch errors in Magento 2.1.0 and earlier; later versions will exit
|
56
56
|
# immediately when a console exit code is retruned, never evaluating this code.
|
57
57
|
if not output.to_s.include? 'New version of deployed files'
|
58
|
-
raise Exception, "\e[0;31mFailed to compile static assets
|
58
|
+
raise Exception, "\e[0;31mFailed to compile static assets. No new version found in command output!\e[0m"
|
59
59
|
end
|
60
60
|
|
61
61
|
output.to_s.each_line { |line|
|
62
62
|
if line.split('errors: ', 2).pop.to_i > 0
|
63
|
-
raise Exception, "\e[0;31mFailed to compile static assets\e[0m"
|
63
|
+
raise Exception, "\e[0;31mFailed to compile static assets. Errors found in command output: #{line}\e[0m"
|
64
64
|
end
|
65
65
|
}
|
66
66
|
end
|
@@ -48,6 +48,7 @@ set :magento_deploy_languages, fetch(:magento_deploy_languages, ['en_US'])
|
|
48
48
|
set :magento_deploy_maintenance, fetch(:magento_deploy_maintenance, true)
|
49
49
|
set :magento_deploy_production, fetch(:magento_deploy_production, true)
|
50
50
|
set :magento_deploy_themes, fetch(:magento_deploy_themes, [])
|
51
|
+
set :magento_deploy_jobs, fetch(:magento_deploy_jobs, nil) # this defaults to 4 when supported by bin/magento
|
51
52
|
|
52
53
|
# deploy targetting defaults
|
53
54
|
set :magento_deploy_setup_role, fetch(:magento_deploy_setup_role, :all)
|
@@ -98,10 +98,10 @@ namespace :magento do
|
|
98
98
|
execute :composer, "install #{composer_flags} 2>&1" # removes require-dev components from prev command
|
99
99
|
end
|
100
100
|
|
101
|
-
if test "[ -
|
101
|
+
if test "[ -f #{release_path}/update/composer.json ]" # can't count on this, but emit warning if not present
|
102
102
|
execute :composer, "install #{composer_flags} -d ./update 2>&1"
|
103
103
|
else
|
104
|
-
puts "\e[0;31m Warning: ./update
|
104
|
+
puts "\e[0;31m Warning: ./update/composer.json does not exist in repository!\n\e[0m\n"
|
105
105
|
end
|
106
106
|
end
|
107
107
|
end
|
@@ -183,7 +183,7 @@ namespace :magento do
|
|
183
183
|
task :upgrade do
|
184
184
|
on primary fetch(:magento_deploy_setup_role) do
|
185
185
|
within release_path do
|
186
|
-
db_status = capture :magento, 'setup:db:status', verbosity: Logger::INFO
|
186
|
+
db_status = capture :magento, 'setup:db:status --no-ansi', verbosity: Logger::INFO
|
187
187
|
|
188
188
|
if not db_status.to_s.include? 'All modules are up to date'
|
189
189
|
execute :magento, 'setup:db-schema:upgrade'
|
@@ -236,9 +236,9 @@ namespace :magento do
|
|
236
236
|
# we have to use multi-tenant currently. However, the multi-tenant is being dropped in 2.1 and is no longer
|
237
237
|
# present in the develop mainline, so we are testing for multi-tenant presence for long-term portability.
|
238
238
|
if test :magento, 'setup:di:compile-multi-tenant --help >/dev/null 2>&1'
|
239
|
-
output = capture :magento, 'setup:di:compile-multi-tenant', verbosity: Logger::INFO
|
239
|
+
output = capture :magento, 'setup:di:compile-multi-tenant --no-ansi', verbosity: Logger::INFO
|
240
240
|
else
|
241
|
-
output = capture :magento, 'setup:di:compile', verbosity: Logger::INFO
|
241
|
+
output = capture :magento, 'setup:di:compile --no-ansi', verbosity: Logger::INFO
|
242
242
|
end
|
243
243
|
|
244
244
|
# 2.0.x never returns a non-zero exit code for errors, so manually check string
|
@@ -259,6 +259,7 @@ namespace :magento do
|
|
259
259
|
|
260
260
|
deploy_languages = fetch(:magento_deploy_languages).join(' ')
|
261
261
|
deploy_themes = fetch(:magento_deploy_themes)
|
262
|
+
deploy_jobs = fetch(:magento_deploy_jobs)
|
262
263
|
|
263
264
|
if deploy_themes.count() > 0 and _magento_version >= Gem::Version.new('2.1.1')
|
264
265
|
deploy_themes = deploy_themes.join(' -t ').prepend(' -t ')
|
@@ -269,6 +270,15 @@ namespace :magento do
|
|
269
270
|
deploy_themes = nil
|
270
271
|
end
|
271
272
|
|
273
|
+
if deploy_jobs and _magento_version >= Gem::Version.new('2.1.1')
|
274
|
+
deploy_jobs = "--jobs #{deploy_jobs} "
|
275
|
+
elsif deploy_jobs
|
276
|
+
warn "\e[0;31mWarning: the :magento_deploy_jobs setting is only supported in Magento 2.1.1 and later\e[0m"
|
277
|
+
deploy_jobs = nil
|
278
|
+
else
|
279
|
+
deploy_jobs = nil
|
280
|
+
end
|
281
|
+
|
272
282
|
# Output is being checked for a success message because this command may easily fail due to customizations
|
273
283
|
# and 2.0.x CLI commands do not return error exit codes on failure. See magento/magento2#3060 for details.
|
274
284
|
within release_path do
|
@@ -277,7 +287,7 @@ namespace :magento do
|
|
277
287
|
execute "touch #{release_path}/pub/static/deployed_version.txt"
|
278
288
|
|
279
289
|
# Generates all but the secure versions of RequireJS configs
|
280
|
-
static_content_deploy "#{deploy_languages}#{deploy_themes}"
|
290
|
+
static_content_deploy "#{deploy_jobs}#{deploy_languages}#{deploy_themes}"
|
281
291
|
end
|
282
292
|
|
283
293
|
# Run again with HTTPS env var set to 'on' to pre-generate secure versions of RequireJS configs
|
@@ -288,7 +298,7 @@ namespace :magento do
|
|
288
298
|
deploy_flags = nil if _magento_version <= Gem::Version.new('2.1.0')
|
289
299
|
|
290
300
|
within release_path do with(https: 'on') {
|
291
|
-
static_content_deploy "#{deploy_languages}#{deploy_themes}#{deploy_flags}"
|
301
|
+
static_content_deploy "#{deploy_jobs}#{deploy_languages}#{deploy_themes}#{deploy_flags}"
|
292
302
|
} end
|
293
303
|
end
|
294
304
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-magento2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Alger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|