capistrano-sozo_magento2 1.1.0 → 1.3.1
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +39 -3
- data/README.md +15 -1
- data/capistrano-sozo_magento.gemspec +2 -1
- data/lib/capistrano/sozo_magento2.rb +22 -22
- data/lib/capistrano/sozo_magento2/defaults.rb +11 -2
- data/lib/capistrano/sozo_magento2/slack.rb +65 -0
- data/lib/capistrano/sozo_magento2/version.rb +1 -1
- data/lib/capistrano/tasks/db.rake +18 -14
- data/lib/capistrano/tasks/magento2.rake +47 -17
- data/lib/capistrano/tasks/slack.rake +24 -4
- data/lib/capistrano/tasks/sozo.rake +12 -3
- data/lib/capistrano/tasks/wordpress.rake +9 -4
- metadata +4 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1b1790fdeb92ff66403be9ccd3f3977ad51383a401deeb09d073e927f1dff17f
|
4
|
+
data.tar.gz: 38e34911ea738869e55fe0d0fe5b5e6baad4207a7af91fbbbcae8a615f1b6208
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 81a868673b25d2ee710b90dba9be7b478b48dbe80b5c238dcdbe493e6255d6647202b619b6bb0c9d71c2c34632d7757450252193e1f218e571dba14dd3dd9e00
|
7
|
+
data.tar.gz: 3125ca35d6f5e0b0ef62cf3283fdf9f97935e5ff3a56268ac8c52c231ff7c36459084f9d72a174a5b60b073a9dd9fe557250e4d81bcede40f30852d38e688547
|
data/CHANGELOG.md
CHANGED
@@ -21,7 +21,43 @@ Given a version number MAJOR.MINOR.PATCH, increment the:
|
|
21
21
|
|
22
22
|
## [Unreleased]
|
23
23
|
|
24
|
-
|
24
|
+
|
25
|
+
## [v1.3.1] - 2021-07-29
|
26
|
+
### Changed
|
27
|
+
- Changed ENV options for WordPress plugins and themes removal.
|
28
|
+
- Multi-PHP support via ability to pass PHP version via the command map.
|
29
|
+
|
30
|
+
|
31
|
+
## [v1.3.0] - 2021-05-14
|
32
|
+
### Added
|
33
|
+
- New task to check for ece-patches file `.magento.env.yaml` and to apply if it finds one.
|
34
|
+
|
35
|
+
|
36
|
+
## [v1.2.1] - 2021-05-06
|
37
|
+
### Fixed
|
38
|
+
- WordPress backup not respecting the :wp_backup false option
|
39
|
+
- Erroneous symlink created inside release directories
|
40
|
+
- Added simple text output in Slack message
|
41
|
+
|
42
|
+
|
43
|
+
## [v1.2.0] - 2021-03-25
|
44
|
+
### Added
|
45
|
+
- New variable `clear_failures` for future use.
|
46
|
+
- New Slack class to control the message template.
|
47
|
+
|
48
|
+
### Changed
|
49
|
+
- Updated Slack messaging to newer version to future proof.
|
50
|
+
- Current directory fix now updates MAGE_ROOT as well.
|
51
|
+
- Standardised tasks order based on key capistrano core tasks.
|
52
|
+
|
53
|
+
### Removed
|
54
|
+
- Removed dotenv from the gem.
|
55
|
+
|
56
|
+
### Fixed
|
57
|
+
- Fix issue when there were less than CAP_KEEP_BACKUPS available.
|
58
|
+
|
59
|
+
|
60
|
+
## [v1.1.0] - 2021-02-24
|
25
61
|
### Added
|
26
62
|
- Added defaults for the :wp_backup, :keep_backups and :slack_channel instead of using ENV's
|
27
63
|
- Added BUILD.md for reminders on how to build and publish the gem.
|
@@ -37,7 +73,7 @@ Given a version number MAJOR.MINOR.PATCH, increment the:
|
|
37
73
|
- Confirm command now using correct symbols to display against roles.
|
38
74
|
|
39
75
|
|
40
|
-
## [v1.0.1] -
|
76
|
+
## [v1.0.1] - 2021-02-20
|
41
77
|
### Added
|
42
78
|
- CHANGELOG.md
|
43
79
|
- License text
|
@@ -47,5 +83,5 @@ Given a version number MAJOR.MINOR.PATCH, increment the:
|
|
47
83
|
- Documentation references to the gem.
|
48
84
|
|
49
85
|
|
50
|
-
### [v1.0.0] -
|
86
|
+
### [v1.0.0] - 2021-02-20
|
51
87
|
- Initial release
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ It is advised to use bundler.
|
|
7
7
|
|
8
8
|
1. Add the following to your projects `Gemfile`
|
9
9
|
```
|
10
|
-
gem "capistrano-sozo_magento2", "~> 1.
|
10
|
+
gem "capistrano-sozo_magento2", "~> 1.3"
|
11
11
|
```
|
12
12
|
2. Install
|
13
13
|
```
|
@@ -62,6 +62,20 @@ If you would like to customize the linked files or directories for your project,
|
|
62
62
|
append :linked_dirs, 'path/to/link'
|
63
63
|
```
|
64
64
|
|
65
|
+
## Command Mapping
|
66
|
+
The module assumes the following bin files are in the following locations:
|
67
|
+
1. `php` in your path accessible from the command line as php
|
68
|
+
2. `composer` in `/usr/local/bin/composer`
|
69
|
+
3. `n98-magerun` in `/usr/local/bin/n98-magerun`
|
70
|
+
|
71
|
+
Composer and n98-magerun command are both prefixed with the PHP path (for multi-php support), if you are overwriting these commands via the command map you will need to include the php bin in your `stage.rb` file similar to the following.
|
72
|
+
```
|
73
|
+
SSHKit.config.command_map[:php] = '/usr/bin/env php74 -dmemory_limit=-1'
|
74
|
+
SSHKit.config.command_map[:composer] = SSHKit.config.command_map[:php], '-f /usr/local/bin/composer'
|
75
|
+
SSHKit.config.command_map[:n98magerun] = SSHKit.config.command_map[:php], '-f /usr/local/bin/n98-magerun'
|
76
|
+
SSHKit.config.command_map[:magento] = SSHKit.config.command_map[:php], '-f bin/magento --'
|
77
|
+
```
|
78
|
+
|
65
79
|
## Versioning
|
66
80
|
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/sozo-design/capistrano-sozo-magento2/tags) or [CHANGELOG.md](./CHANGELOG.md).
|
67
81
|
|
@@ -17,7 +17,8 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.bindir = "bin"
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.required_ruby_version = '>= 2.5.3'
|
20
22
|
|
21
23
|
spec.add_dependency "capistrano", "~> 3.9"
|
22
|
-
spec.add_dependency "dotenv", "~> 2.2"
|
23
24
|
end
|
@@ -1,10 +1,9 @@
|
|
1
1
|
require 'date'
|
2
|
-
require 'dotenv'
|
3
|
-
Dotenv.load
|
4
2
|
|
5
|
-
SSHKit.config.command_map[:
|
6
|
-
SSHKit.config.command_map[:
|
7
|
-
SSHKit.config.command_map[:
|
3
|
+
SSHKit.config.command_map[:php] = '/usr/bin/env php -dmemory_limit=-1'
|
4
|
+
SSHKit.config.command_map[:composer] = SSHKit.config.command_map[:php], '-f /usr/local/bin/composer'
|
5
|
+
SSHKit.config.command_map[:n98magerun] = SSHKit.config.command_map[:php], '-f /usr/local/bin/n98-magerun'
|
6
|
+
SSHKit.config.command_map[:magento] = SSHKit.config.command_map[:php], '-f bin/magento --'
|
8
7
|
|
9
8
|
load File.expand_path('../tasks/sozo_magento2.rake', __FILE__)
|
10
9
|
load File.expand_path('../tasks/deploy.rake', __FILE__)
|
@@ -19,33 +18,34 @@ load File.expand_path('../tasks/server.rake', __FILE__)
|
|
19
18
|
load File.expand_path('../tasks/wordpress.rake', __FILE__)
|
20
19
|
|
21
20
|
after 'deploy:updating', 'composer:install'
|
22
|
-
after '
|
21
|
+
after 'deploy:updating', 'magento:patches:apply'
|
22
|
+
after 'deploy:updating', 'magento:setup:permissions'
|
23
23
|
|
24
24
|
before 'deploy:updated', 'slack:deploying'
|
25
|
-
|
26
|
-
|
27
|
-
|
25
|
+
before 'deploy:updated', 'db:backup'
|
26
|
+
before 'deploy:updated', 'sozo:config:setup'
|
27
|
+
before 'deploy:updated', 'magento:maintenance:enable'
|
28
28
|
|
29
29
|
after 'deploy:updated', 'provision:setup_dir'
|
30
|
-
after '
|
31
|
-
after '
|
32
|
-
after '
|
33
|
-
after '
|
30
|
+
after 'deploy:updated', 'magento:setup:upgrade'
|
31
|
+
after 'deploy:updated', 'magento:setup:di:compile'
|
32
|
+
after 'deploy:updated', 'magento:setup:static-content:deploy'
|
33
|
+
after 'deploy:updated', 'provision:permissions'
|
34
34
|
|
35
35
|
after 'deploy:finishing', 'sozo:symlink'
|
36
|
-
after '
|
37
|
-
after '
|
38
|
-
after '
|
39
|
-
after '
|
40
|
-
after '
|
41
|
-
after '
|
36
|
+
after 'deploy:finishing', 'fishpig:setup:install_theme'
|
37
|
+
after 'deploy:finishing', 'wordpress:sozo_mu'
|
38
|
+
after 'deploy:finishing', 'wordpress:cleanup'
|
39
|
+
after 'deploy:finishing', 'sozo:optimise'
|
40
|
+
after 'deploy:finishing', 'server:service:restart'
|
41
|
+
after 'deploy:finishing', 'magento:maintenance:disable'
|
42
42
|
|
43
43
|
after 'deploy:finished', "slack:deployed"
|
44
|
-
after '
|
44
|
+
after 'deploy:finished', "db:cleanup"
|
45
45
|
|
46
|
+
after 'deploy:failed', "sozo:fix_current"
|
46
47
|
after 'deploy:failed', "slack:failed"
|
47
|
-
after '
|
48
|
-
after 'sozo:fix_current', 'magento:maintenance:disable'
|
48
|
+
after 'deploy:failed', 'magento:maintenance:disable'
|
49
49
|
|
50
50
|
namespace :load do
|
51
51
|
task :defaults do
|
@@ -27,12 +27,21 @@ set :composer_require_dev_flags, '--optimize-autoloader --prefer-dist'
|
|
27
27
|
set :date_path, Time.now.strftime("%Y%m%d%H%M%S")
|
28
28
|
set :backupdir, ->{ "#{fetch(:deploy_root)}/backups" }
|
29
29
|
set :backupdirdate, ->{ "#{fetch(:backupdir)}/#{fetch(:date_path)}" }
|
30
|
-
set :wp_backup, fetch(:wp_backup, true)
|
31
30
|
set :keep_backups, fetch(:keep_backups, 10)
|
32
31
|
|
32
|
+
# WordPress integration defaults
|
33
|
+
set :wp_backup, fetch(:wp_backup, true)
|
34
|
+
set :wp_delete_themes, fetch(:wp_delete_themes, 'twentyseventeen twentynineteen twentytwenty')
|
35
|
+
set :wp_delete_plugins, fetch(:wp_delete_plugins, 'hello')
|
36
|
+
set :wp_disable_plugins, fetch(:wp_disable_plugins, '')
|
37
|
+
|
33
38
|
# Slack defaults
|
34
39
|
set :slack_channel, fetch(:slack_channel, '#deployments')
|
35
40
|
set :slack_webhook, 'https://hooks.slack.com/services/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'
|
36
41
|
|
37
42
|
# Deployment defaults
|
38
|
-
set :magento_deploy_confirm_roles, fetch(:magento_deploy_confirm_roles, [])
|
43
|
+
set :magento_deploy_confirm_roles, fetch(:magento_deploy_confirm_roles, [])
|
44
|
+
|
45
|
+
# Other defaults (for future use)
|
46
|
+
# Clear or leave the failed deployment dirs
|
47
|
+
set :clear_failures, fetch(:clear_failures, true)
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
include Capistrano::DSL
|
4
|
+
|
5
|
+
module SozoMagento2
|
6
|
+
module Slack
|
7
|
+
def message_hash
|
8
|
+
{
|
9
|
+
"channel" => fetch(:slack_channel),
|
10
|
+
"username" => "SOZO Deploy Bot",
|
11
|
+
"icon_emoji" => ":satellite:",
|
12
|
+
"color" => "good",
|
13
|
+
"text" => "#{fetch(:url)} Deployment Process Begun",
|
14
|
+
"blocks" => [
|
15
|
+
{
|
16
|
+
"type" => "header",
|
17
|
+
"text" => {
|
18
|
+
"type" => "plain_text",
|
19
|
+
"text" => "Deployment Process Begun"
|
20
|
+
}
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"type" => "divider"
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"type" => "section",
|
27
|
+
"text" => {
|
28
|
+
"type" => "mrkdwn",
|
29
|
+
"text" => "#{fetch(:url)} is being Deployed"
|
30
|
+
},
|
31
|
+
"accessory" => {
|
32
|
+
"type" => "button",
|
33
|
+
"style" => "primary",
|
34
|
+
"text" => {
|
35
|
+
"type" => "plain_text",
|
36
|
+
"text" => "Visit Site",
|
37
|
+
"emoji" => true
|
38
|
+
},
|
39
|
+
"value" => "click_me_123",
|
40
|
+
"url" => fetch(:url),
|
41
|
+
"action_id" => "button-action"
|
42
|
+
}
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"type" => "section",
|
46
|
+
"fields" => [
|
47
|
+
{
|
48
|
+
"type" => "mrkdwn",
|
49
|
+
"text" => "*Branch:*\n#{fetch(:branch)}"
|
50
|
+
},
|
51
|
+
{
|
52
|
+
"type" => "mrkdwn",
|
53
|
+
"text" => "*Developer:*\n#{fetch(:local_user)}"
|
54
|
+
},
|
55
|
+
{
|
56
|
+
"type" => "mrkdwn",
|
57
|
+
"text" => "*Environment:*\n#{fetch(:environment)}"
|
58
|
+
}
|
59
|
+
]
|
60
|
+
}
|
61
|
+
]
|
62
|
+
}
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -7,14 +7,14 @@ namespace :db do
|
|
7
7
|
if test("[ ! -d #{fetch(:backupdir)} ]")
|
8
8
|
execute :mkdir, "-p", fetch(:backupdir)
|
9
9
|
end
|
10
|
-
|
11
|
-
invoke 'db:
|
12
|
-
invoke 'db:
|
10
|
+
|
11
|
+
invoke 'db:mag_db_backup'
|
12
|
+
invoke 'db:wp_db_backup'
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
desc "Backup Magento database"
|
17
|
-
task :
|
17
|
+
task :mag_db_backup do
|
18
18
|
on roles :all do
|
19
19
|
info "Backing up Magento database."
|
20
20
|
execute :n98magerun, 'db:dump', "--root-dir='#{fetch(:mage_root)}'",
|
@@ -25,14 +25,18 @@ namespace :db do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
desc "Backup WordPress database"
|
28
|
-
task :
|
28
|
+
task :wp_db_backup do
|
29
29
|
# Backup the database with a timestamp
|
30
30
|
on roles :all do
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
31
|
+
if (fetch(:wp_backup) == "true")
|
32
|
+
info "Backing up WordPress database."
|
33
|
+
execute :n98magerun, 'db:dump', "--root-dir='#{fetch(:mage_root)}'",
|
34
|
+
'--compression="gzip"',
|
35
|
+
'--connection="wordpress"',
|
36
|
+
'--force', "#{fetch(:backupdir)}/#{fetch(:date_path)}_wp.sql.gz"
|
37
|
+
else
|
38
|
+
info "WordPress backup set to false"
|
39
|
+
end
|
36
40
|
end
|
37
41
|
end
|
38
42
|
|
@@ -49,11 +53,11 @@ namespace :db do
|
|
49
53
|
files = (valid - valid.last(fetch(:keep_backups).to_i)).map do |backup|
|
50
54
|
"#{fetch(:backupdir)}" + "/" + (backup).to_s
|
51
55
|
end
|
52
|
-
end
|
53
56
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
+
if files.any?
|
58
|
+
files.each_slice(100) do |files_batch|
|
59
|
+
execute :rm, "-f", *files_batch
|
60
|
+
end
|
57
61
|
end
|
58
62
|
end
|
59
63
|
end
|
@@ -5,7 +5,7 @@ namespace :magento do
|
|
5
5
|
task :flush do
|
6
6
|
on release_roles :all do
|
7
7
|
within release_path do
|
8
|
-
execute :php, '-
|
8
|
+
execute :php, '-f', 'magento/bin/magento', 'cache:flush'
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
@@ -14,7 +14,7 @@ namespace :magento do
|
|
14
14
|
task :clean do
|
15
15
|
on release_roles :all do
|
16
16
|
within release_path do
|
17
|
-
execute :php, '-
|
17
|
+
execute :php, '-f', 'magento/bin/magento', 'cache:clean'
|
18
18
|
end
|
19
19
|
end
|
20
20
|
end
|
@@ -24,7 +24,7 @@ namespace :magento do
|
|
24
24
|
on release_roles :all do
|
25
25
|
within release_path do
|
26
26
|
if File.exist?("magento/bin/magento")
|
27
|
-
execute :php, '-
|
27
|
+
execute :php, '-f', 'magento/bin/magento', 'cache:enable', 'config layout block_html collections reflection db_ddl eav config_integration config_integration_api full_page translate config_webservice'
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
@@ -34,7 +34,7 @@ namespace :magento do
|
|
34
34
|
task :disable do
|
35
35
|
on release_roles :all do
|
36
36
|
within release_path do
|
37
|
-
execute :php, '-
|
37
|
+
execute :php, '-f', 'magento/bin/magento', 'cache:disable'
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
@@ -43,7 +43,7 @@ namespace :magento do
|
|
43
43
|
task :status do
|
44
44
|
on release_roles :all do
|
45
45
|
within release_path do
|
46
|
-
execute :php, '-
|
46
|
+
execute :php, '-f', 'magento/bin/magento', 'cache:status'
|
47
47
|
end
|
48
48
|
end
|
49
49
|
end
|
@@ -76,7 +76,7 @@ namespace :magento do
|
|
76
76
|
if test("[ -f #{release_path}/magento/app/etc/config.php ]")
|
77
77
|
# Exists, carry on
|
78
78
|
else
|
79
|
-
execute :php, '-
|
79
|
+
execute :php, '-f', 'bin/magento', "module:enable", "--all"
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|
@@ -86,7 +86,7 @@ namespace :magento do
|
|
86
86
|
task 'disable', :module_name do |t, args|
|
87
87
|
on release_roles :staging do
|
88
88
|
within release_path + 'magento/' do
|
89
|
-
execute :php, '-
|
89
|
+
execute :php, '-f', 'bin/magento', "module:disable", args[:module_name]
|
90
90
|
end
|
91
91
|
end
|
92
92
|
end
|
@@ -95,7 +95,7 @@ namespace :magento do
|
|
95
95
|
task 'enable', :module_name do |t, args|
|
96
96
|
on release_roles :staging do
|
97
97
|
within release_path + 'magento/' do
|
98
|
-
execute :php, '-
|
98
|
+
execute :php, '-f', 'bin/magento', "module:enable", args[:module_name], '-f'
|
99
99
|
invoke 'magento:setup:upgrade'
|
100
100
|
invoke 'magento:setup:static-content:deploy'
|
101
101
|
end
|
@@ -112,7 +112,7 @@ namespace :magento do
|
|
112
112
|
within release_path + 'magento/' do
|
113
113
|
ask(:parameter, '')
|
114
114
|
ask(:value, '')
|
115
|
-
execute :php, '-
|
115
|
+
execute :php, '-f', 'magento/bin/magento', "setup:config:set", "--#{fetch(:parameter)}=#{fetch(:value)}", "--no-interaction"
|
116
116
|
end
|
117
117
|
end
|
118
118
|
end
|
@@ -131,7 +131,7 @@ namespace :magento do
|
|
131
131
|
task :upgrade do
|
132
132
|
on release_roles :all do
|
133
133
|
within release_path do
|
134
|
-
execute :php, '-
|
134
|
+
execute :php, '-f', 'magento/bin/magento', 'setup:upgrade', '-n'
|
135
135
|
end
|
136
136
|
end
|
137
137
|
end
|
@@ -172,7 +172,7 @@ namespace :magento do
|
|
172
172
|
task :compile do
|
173
173
|
on release_roles :all do
|
174
174
|
within release_path do
|
175
|
-
execute :php, '-
|
175
|
+
execute :php, '-f', 'magento/bin/magento', 'setup:di:compile'
|
176
176
|
end
|
177
177
|
end
|
178
178
|
end
|
@@ -183,7 +183,7 @@ namespace :magento do
|
|
183
183
|
task :deploy do
|
184
184
|
on release_roles :all do
|
185
185
|
within release_path do
|
186
|
-
execute :php, '-
|
186
|
+
execute :php, '-f', 'magento/bin/magento', 'setup:static-content:deploy -f en_US en_GB -j6'
|
187
187
|
end
|
188
188
|
end
|
189
189
|
end
|
@@ -197,7 +197,7 @@ namespace :magento do
|
|
197
197
|
on release_roles :all do
|
198
198
|
within current_path do
|
199
199
|
if File.exist?("magento/bin/magento")
|
200
|
-
execute :php, '-
|
200
|
+
execute :php, '-f', 'magento/bin/magento', 'maintenance:enable'
|
201
201
|
end
|
202
202
|
end
|
203
203
|
end
|
@@ -208,7 +208,7 @@ namespace :magento do
|
|
208
208
|
on release_roles :all do
|
209
209
|
within current_path do
|
210
210
|
if File.exist?("magento/bin/magento")
|
211
|
-
execute :php, '-
|
211
|
+
execute :php, '-f', 'magento/bin/magento', 'maintenance:disable'
|
212
212
|
end
|
213
213
|
end
|
214
214
|
end
|
@@ -218,7 +218,7 @@ namespace :magento do
|
|
218
218
|
task :status do
|
219
219
|
on release_roles :all do
|
220
220
|
within current_path do
|
221
|
-
execute :php, '-
|
221
|
+
execute :php, '-f', 'magento/bin/magento', 'maintenance:status'
|
222
222
|
end
|
223
223
|
end
|
224
224
|
end
|
@@ -227,7 +227,7 @@ namespace :magento do
|
|
227
227
|
task 'allow-ips', :ip do |t, args|
|
228
228
|
on release_roles :all do
|
229
229
|
within current_path do
|
230
|
-
execute :php, '-
|
230
|
+
execute :php, '-f', 'magento/bin/magento', 'maintenance:allow-ips', args[:ip]
|
231
231
|
end
|
232
232
|
end
|
233
233
|
end
|
@@ -238,7 +238,37 @@ namespace :magento do
|
|
238
238
|
task :reindex do
|
239
239
|
on release_roles :all do
|
240
240
|
within release_path do
|
241
|
-
execute :php, '-
|
241
|
+
execute :php, '-f', 'magento/bin/magento', 'indexer:reindex'
|
242
|
+
end
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
namespace :patches do
|
248
|
+
desc 'Run the ece-patch tool if the .magento.env.yaml file exists'
|
249
|
+
task :apply do
|
250
|
+
on release_roles :all do
|
251
|
+
within release_path do
|
252
|
+
if test("[ -f #{release_path}/magento/.magento.env.yaml ]")
|
253
|
+
info 'Applying patches'
|
254
|
+
execute :php, '-f', 'magento/vendor/bin/ece-patches', 'apply --no-interaction'
|
255
|
+
else
|
256
|
+
info 'No patch file found, skipping.'
|
257
|
+
end
|
258
|
+
end
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
desc 'Revert patches if the .magento.env.yaml files exists'
|
263
|
+
task :revert do
|
264
|
+
on release_roles :all do
|
265
|
+
within release_path do
|
266
|
+
if test("[ -f #{release_path}/magento/.magento.env.yaml ]")
|
267
|
+
info 'Reverting patches'
|
268
|
+
execute :php, '-f', 'magento/vendor/bin/ece-patches', 'revert --no-interaction'
|
269
|
+
else
|
270
|
+
info 'No patch file found, skipping.'
|
271
|
+
end
|
242
272
|
end
|
243
273
|
end
|
244
274
|
end
|
@@ -1,29 +1,49 @@
|
|
1
|
+
require 'capistrano/sozo_magento2/slack'
|
2
|
+
|
3
|
+
include SozoMagento2::Slack
|
4
|
+
|
1
5
|
namespace :slack do
|
2
6
|
desc "Post to channel that the site has been deployed"
|
3
7
|
task :deployed do
|
4
8
|
on roles(:all) do
|
5
|
-
|
9
|
+
slack_template = message_hash
|
10
|
+
slack_template['text'] = "#{fetch(:url)} Deployment Process Successful"
|
11
|
+
slack_template['blocks'][0]['text']['text'] = ":smile: Deployment Successful :smile:"
|
12
|
+
slack_template['blocks'][2]['text']['text'] = "#{fetch(:url)} Deployed."
|
13
|
+
execute :curl, "--request", "POST", "--header", "'Content-Type: application/json'", "--data", "'" + JSON.generate(slack_template) + "'", fetch(:slack_webhook)
|
6
14
|
end
|
7
15
|
end
|
8
16
|
|
9
17
|
desc "Post to channel that the site is being deployed"
|
10
18
|
task :deploying do
|
11
19
|
on roles(:all) do
|
12
|
-
|
20
|
+
slack_template = message_hash
|
21
|
+
slack_template['text'] = "#{fetch(:url)} Deployment Process Begun"
|
22
|
+
slack_template['blocks'][0]['text']['text'] = ":crossed_fingers: Deployment Process Begun :crossed_fingers:"
|
23
|
+
slack_template['blocks'][2]['text']['text'] = "#{fetch(:url)} is being Deployed."
|
24
|
+
execute :curl, "--request", "POST", "--header", "'Content-Type: application/json'", "--data", "'" + JSON.generate(slack_template) + "'", fetch(:slack_webhook)
|
13
25
|
end
|
14
26
|
end
|
15
27
|
|
16
28
|
desc "Post to channel that something is happening"
|
17
29
|
task :message do
|
18
30
|
on roles(:all) do
|
19
|
-
|
31
|
+
slack_template = message_hash
|
32
|
+
slack_template['text'] = "Some message here"
|
33
|
+
slack_template['blocks'][0]['text']['text'] = "Message"
|
34
|
+
slack_template['blocks'][2]['text']['text'] = "Some message to go here"
|
35
|
+
execute :curl, "--request", "POST", "--header", "'Content-Type: application/json'", "--data", "'" + JSON.generate(slack_template) + "'", fetch(:slack_webhook)
|
20
36
|
end
|
21
37
|
end
|
22
38
|
|
23
39
|
desc "Post to channel that the site deployment has failed"
|
24
40
|
task :failed do
|
25
41
|
on roles(:all) do
|
26
|
-
|
42
|
+
slack_template = message_hash
|
43
|
+
slack_template['text'] = "#{fetch(:url)} Deployment Process Failed!"
|
44
|
+
slack_template['blocks'][0]['text']['text'] = ":boom: Deployment Process Failed :boom:"
|
45
|
+
slack_template['blocks'][2]['text']['text'] = "#{fetch(:url)} deployment has failed."
|
46
|
+
execute :curl, "--request", "POST", "--header", "'Content-Type: application/json'", "--data", "'" + JSON.generate(slack_template) + "'", fetch(:slack_webhook)
|
27
47
|
end
|
28
48
|
end
|
29
49
|
end
|
@@ -6,10 +6,19 @@ namespace :sozo do
|
|
6
6
|
releases = capture(:ls, "-x", releases_path).split
|
7
7
|
valid, invalid = releases.partition { |e| /^\d{14}$/ =~ e }
|
8
8
|
|
9
|
-
info "
|
10
|
-
info "Creating symlink from #{fetch(:deploy_to)}/releases/#{valid.last} to #{fetch(:deploy_to)}/current"
|
9
|
+
info "Checking current and magento root directories are setup correctly."
|
11
10
|
|
12
|
-
|
11
|
+
current = "#{fetch(:deploy_to)}/current"
|
12
|
+
if test("[ ! -e #{current} ]")
|
13
|
+
info "Current link #{current} link is broken, regenerating."
|
14
|
+
execute :ln, "-sf", "#{fetch(:deploy_to)}/releases/#{valid.last}", current
|
15
|
+
end
|
16
|
+
|
17
|
+
m2root = "#{fetch(:mage_root)}"
|
18
|
+
if test("[ ! -e #{m2root} ]")
|
19
|
+
info "M2Path link #{m2root} link is broken, regenerating."
|
20
|
+
execute :ln, "-sf", "#{fetch(:deploy_to)}/releases/#{valid.last}/magento", m2root
|
21
|
+
end
|
13
22
|
end
|
14
23
|
end
|
15
24
|
|
@@ -12,10 +12,15 @@ namespace :wordpress do
|
|
12
12
|
on roles :all do |host|
|
13
13
|
within release_path + "magento/wp/" do
|
14
14
|
info "Removing default unused WordPress Plugins and Themes"
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
if fetch(:wp_disable_plugins).length >= 1
|
16
|
+
execute :wp, 'plugin', 'deactivate', fetch(:wp_disable_plugins)
|
17
|
+
end
|
18
|
+
if fetch(:wp_delete_plugins).length >= 1
|
19
|
+
execute :wp, 'plugin', 'delete', fetch(:wp_delete_plugins)
|
20
|
+
end
|
21
|
+
if fetch(:wp_delete_themes).length >= 1
|
22
|
+
execute :wp, 'theme', 'delete', fetch(:wp_delete_themes)
|
23
|
+
end
|
19
24
|
execute :rm, '-f', 'readme.html'
|
20
25
|
end
|
21
26
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-sozo_magento2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1
|
4
|
+
version: 1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Clive Walkden
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-07-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: capistrano
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '3.9'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: dotenv
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '2.2'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '2.2'
|
41
27
|
description: Magento 2 support for Capistrano 3.x in SOZO hosted environments
|
42
28
|
email:
|
43
29
|
- clive@sozodesign.co.uk
|
@@ -54,6 +40,7 @@ files:
|
|
54
40
|
- capistrano-sozo_magento.gemspec
|
55
41
|
- lib/capistrano/sozo_magento2.rb
|
56
42
|
- lib/capistrano/sozo_magento2/defaults.rb
|
43
|
+
- lib/capistrano/sozo_magento2/slack.rb
|
57
44
|
- lib/capistrano/sozo_magento2/version.rb
|
58
45
|
- lib/capistrano/tasks/composer.rake
|
59
46
|
- lib/capistrano/tasks/db.rake
|
@@ -78,7 +65,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
78
65
|
requirements:
|
79
66
|
- - ">="
|
80
67
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
68
|
+
version: 2.5.3
|
82
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
83
70
|
requirements:
|
84
71
|
- - ">="
|