capistrano-sozo_magento2 1.1.0 → 1.2.0
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 +17 -0
- data/README.md +1 -1
- data/capistrano-sozo_magento.gemspec +2 -1
- data/lib/capistrano/sozo_magento2.rb +17 -19
- data/lib/capistrano/sozo_magento2/defaults.rb +5 -1
- data/lib/capistrano/sozo_magento2/slack.rb +64 -0
- data/lib/capistrano/sozo_magento2/version.rb +1 -1
- data/lib/capistrano/tasks/db.rake +4 -4
- data/lib/capistrano/tasks/slack.rake +21 -4
- data/lib/capistrano/tasks/sozo.rake +1 -0
- 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: 57d66531993d668be8a75fef480862d07035dcf0750f7831912f71bc749d5201
|
4
|
+
data.tar.gz: 5032e4073c3eed84ce9030206c0e9c3cfbdfbf29e8d12d1968802f48df3fa42b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3550c64e691e692c9e896078f269ecc8ef5035b3ce4c110df0020aa47cdd6d6c5e3b1bb47b58f06ef57db16b57a96510d6ac8509713fd3ff4f299519810842f1
|
7
|
+
data.tar.gz: 2e6f979c104a3c2d175894d0cc3e0ad08531abdc9bbfb8faa19cc2714c4d0e92bf18a2c2c6fa042f7a30a8228842167ea44ece6350482a4d886d2e344fedce98
|
data/CHANGELOG.md
CHANGED
@@ -21,6 +21,23 @@ Given a version number MAJOR.MINOR.PATCH, increment the:
|
|
21
21
|
|
22
22
|
## [Unreleased]
|
23
23
|
|
24
|
+
## [v1.2.0] - 2020-03-25
|
25
|
+
### Added
|
26
|
+
- New variable `clear_failures` for future use.
|
27
|
+
- New Slack class to control the message template.
|
28
|
+
|
29
|
+
### Changed
|
30
|
+
- Updated Slack messaging to newer version to future proof.
|
31
|
+
- Current directory fix now updates MAGE_ROOT as well.
|
32
|
+
- Standardised tasks order based on key capistrano core tasks.
|
33
|
+
|
34
|
+
### Removed
|
35
|
+
- Removed dotenv from the gem.
|
36
|
+
|
37
|
+
### Fixed
|
38
|
+
- Fix issue when there were less than CAP_KEEP_BACKUPS available.
|
39
|
+
|
40
|
+
|
24
41
|
## [v1.1.0] - 2020-02-24
|
25
42
|
### Added
|
26
43
|
- Added defaults for the :wp_backup, :keep_backups and :slack_channel instead of using ENV's
|
data/README.md
CHANGED
@@ -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,6 +1,4 @@
|
|
1
1
|
require 'date'
|
2
|
-
require 'dotenv'
|
3
|
-
Dotenv.load
|
4
2
|
|
5
3
|
SSHKit.config.command_map[:composer] = 'php -dmemory_limit=-1 -f /usr/local/bin/composer'
|
6
4
|
SSHKit.config.command_map[:n98magerun] = '/usr/local/bin/n98-magerun'
|
@@ -19,33 +17,33 @@ load File.expand_path('../tasks/server.rake', __FILE__)
|
|
19
17
|
load File.expand_path('../tasks/wordpress.rake', __FILE__)
|
20
18
|
|
21
19
|
after 'deploy:updating', 'composer:install'
|
22
|
-
after '
|
20
|
+
after 'deploy:updating', 'magento:setup:permissions'
|
23
21
|
|
24
22
|
before 'deploy:updated', 'slack:deploying'
|
25
|
-
|
26
|
-
|
27
|
-
|
23
|
+
before 'deploy:updated', 'db:backup'
|
24
|
+
before 'deploy:updated', 'sozo:config:setup'
|
25
|
+
before 'deploy:updated', 'magento:maintenance:enable'
|
28
26
|
|
29
27
|
after 'deploy:updated', 'provision:setup_dir'
|
30
|
-
after '
|
31
|
-
after '
|
32
|
-
after '
|
33
|
-
after '
|
28
|
+
after 'deploy:updated', 'magento:setup:upgrade'
|
29
|
+
after 'deploy:updated', 'magento:setup:di:compile'
|
30
|
+
after 'deploy:updated', 'magento:setup:static-content:deploy'
|
31
|
+
after 'deploy:updated', 'provision:permissions'
|
34
32
|
|
35
33
|
after 'deploy:finishing', 'sozo:symlink'
|
36
|
-
after '
|
37
|
-
after '
|
38
|
-
after '
|
39
|
-
after '
|
40
|
-
after '
|
41
|
-
after '
|
34
|
+
after 'deploy:finishing', 'fishpig:setup:install_theme'
|
35
|
+
after 'deploy:finishing', 'wordpress:sozo_mu'
|
36
|
+
after 'deploy:finishing', 'wordpress:cleanup'
|
37
|
+
after 'deploy:finishing', 'sozo:optimise'
|
38
|
+
after 'deploy:finishing', 'server:service:restart'
|
39
|
+
after 'deploy:finishing', 'magento:maintenance:disable'
|
42
40
|
|
43
41
|
after 'deploy:finished', "slack:deployed"
|
44
|
-
after '
|
42
|
+
after 'deploy:finished', "db:cleanup"
|
45
43
|
|
46
44
|
after 'deploy:failed', "slack:failed"
|
47
|
-
after '
|
48
|
-
after '
|
45
|
+
after 'deploy:failed', "sozo:fix_current"
|
46
|
+
after 'deploy:failed', 'magento:maintenance:disable'
|
49
47
|
|
50
48
|
namespace :load do
|
51
49
|
task :defaults do
|
@@ -35,4 +35,8 @@ set :slack_channel, fetch(:slack_channel, '#deployments')
|
|
35
35
|
set :slack_webhook, 'https://hooks.slack.com/services/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'
|
36
36
|
|
37
37
|
# Deployment defaults
|
38
|
-
set :magento_deploy_confirm_roles, fetch(:magento_deploy_confirm_roles, [])
|
38
|
+
set :magento_deploy_confirm_roles, fetch(:magento_deploy_confirm_roles, [])
|
39
|
+
|
40
|
+
# Other defaults (for future use)
|
41
|
+
# Clear or leave the failed deployment dirs
|
42
|
+
set :clear_failures, fetch(:clear_failures, true)
|
@@ -0,0 +1,64 @@
|
|
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
|
+
"blocks" => [
|
14
|
+
{
|
15
|
+
"type" => "header",
|
16
|
+
"text" => {
|
17
|
+
"type" => "plain_text",
|
18
|
+
"text" => "Deployment Process Begun"
|
19
|
+
}
|
20
|
+
},
|
21
|
+
{
|
22
|
+
"type" => "divider"
|
23
|
+
},
|
24
|
+
{
|
25
|
+
"type" => "section",
|
26
|
+
"text" => {
|
27
|
+
"type" => "mrkdwn",
|
28
|
+
"text" => "#{fetch(:url)} is being Deployed"
|
29
|
+
},
|
30
|
+
"accessory" => {
|
31
|
+
"type" => "button",
|
32
|
+
"style" => "primary",
|
33
|
+
"text" => {
|
34
|
+
"type" => "plain_text",
|
35
|
+
"text" => "Visit Site",
|
36
|
+
"emoji" => true
|
37
|
+
},
|
38
|
+
"value" => "click_me_123",
|
39
|
+
"url" => fetch(:url),
|
40
|
+
"action_id" => "button-action"
|
41
|
+
}
|
42
|
+
},
|
43
|
+
{
|
44
|
+
"type" => "section",
|
45
|
+
"fields" => [
|
46
|
+
{
|
47
|
+
"type" => "mrkdwn",
|
48
|
+
"text" => "*Branch:*\n#{fetch(:branch)}"
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"type" => "mrkdwn",
|
52
|
+
"text" => "*Developer:*\n#{fetch(:local_user)}"
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"type" => "mrkdwn",
|
56
|
+
"text" => "*Environment:*\n#{fetch(:environment)}"
|
57
|
+
}
|
58
|
+
]
|
59
|
+
}
|
60
|
+
]
|
61
|
+
}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -49,11 +49,11 @@ namespace :db do
|
|
49
49
|
files = (valid - valid.last(fetch(:keep_backups).to_i)).map do |backup|
|
50
50
|
"#{fetch(:backupdir)}" + "/" + (backup).to_s
|
51
51
|
end
|
52
|
-
end
|
53
52
|
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
if files.any?
|
54
|
+
files.each_slice(100) do |files_batch|
|
55
|
+
execute :rm, "-f", *files_batch
|
56
|
+
end
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
@@ -1,29 +1,46 @@
|
|
1
|
+
require 'capistrano/sozo_magento2/slack'
|
2
|
+
require 'json'
|
3
|
+
|
4
|
+
include SozoMagento2::Slack
|
5
|
+
|
1
6
|
namespace :slack do
|
2
7
|
desc "Post to channel that the site has been deployed"
|
3
8
|
task :deployed do
|
4
9
|
on roles(:all) do
|
5
|
-
|
10
|
+
slack_template = message_hash
|
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['blocks'][0]['text']['text'] = ":crossed_fingers: Deployment Process Begun :crossed_fingers:"
|
22
|
+
slack_template['blocks'][2]['text']['text'] = "#{fetch(:url)} is being Deployed."
|
23
|
+
execute :curl, "--request", "POST", "--header", "'Content-Type: application/json'", "--data", "'" + JSON.generate(slack_template) + "'", fetch(:slack_webhook)
|
13
24
|
end
|
14
25
|
end
|
15
26
|
|
16
27
|
desc "Post to channel that something is happening"
|
17
28
|
task :message do
|
18
29
|
on roles(:all) do
|
19
|
-
|
30
|
+
slack_template = message_hash
|
31
|
+
slack_template['blocks'][0]['text']['text'] = "Message"
|
32
|
+
slack_template['blocks'][2]['text']['text'] = "Some message to go here"
|
33
|
+
execute :curl, "--request", "POST", "--header", "'Content-Type: application/json'", "--data", "'" + JSON.generate(slack_template) + "'", fetch(:slack_webhook)
|
20
34
|
end
|
21
35
|
end
|
22
36
|
|
23
37
|
desc "Post to channel that the site deployment has failed"
|
24
38
|
task :failed do
|
25
39
|
on roles(:all) do
|
26
|
-
|
40
|
+
slack_template = message_hash
|
41
|
+
slack_template['blocks'][0]['text']['text'] = ":boom: Deployment Process Failed :boom:"
|
42
|
+
slack_template['blocks'][2]['text']['text'] = "#{fetch(:url)} deployment has failed."
|
43
|
+
execute :curl, "--request", "POST", "--header", "'Content-Type: application/json'", "--data", "'" + JSON.generate(slack_template) + "'", fetch(:slack_webhook)
|
27
44
|
end
|
28
45
|
end
|
29
46
|
end
|
@@ -10,6 +10,7 @@ namespace :sozo do
|
|
10
10
|
info "Creating symlink from #{fetch(:deploy_to)}/releases/#{valid.last} to #{fetch(:deploy_to)}/current"
|
11
11
|
|
12
12
|
execute :ln, "-sf", "#{fetch(:deploy_to)}/releases/#{valid.last}", "#{fetch(:deploy_to)}/current"
|
13
|
+
execute :ln, "-sf", "#{fetch(:deploy_to)}/releases/#{valid.last}", "#{fetch(:mage_root)}"
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
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.
|
4
|
+
version: 1.2.0
|
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-03-25 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
|
- - ">="
|