dkdeploy-core 9.2.1 → 9.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/.rubocop.yml +34 -8
- data/.travis.yml +6 -5
- data/Berksfile +2 -0
- data/CHANGELOG.md +55 -0
- data/Gemfile +2 -0
- data/README.md +3 -3
- data/Rakefile +2 -0
- data/Vagrantfile +7 -8
- data/dkdeploy-core.gemspec +9 -7
- data/features/support/env.rb +2 -0
- data/lib/capistrano/dkdeploy/core.rb +2 -0
- data/lib/dkdeploy.rb +2 -0
- data/lib/dkdeploy/constants.rb +2 -0
- data/lib/dkdeploy/core/version.rb +3 -1
- data/lib/dkdeploy/dsl.rb +2 -0
- data/lib/dkdeploy/helpers/assets.rb +2 -0
- data/lib/dkdeploy/helpers/common.rb +2 -0
- data/lib/dkdeploy/helpers/db.rb +2 -0
- data/lib/dkdeploy/helpers/file_system.rb +2 -0
- data/lib/dkdeploy/helpers/mysql.rb +2 -0
- data/lib/dkdeploy/i18n.rb +2 -0
- data/lib/dkdeploy/interaction_handler/mysql.rb +3 -1
- data/lib/dkdeploy/interaction_handler/password.rb +2 -0
- data/lib/dkdeploy/rollback_manager.rb +2 -0
- data/lib/dkdeploy/scm/copy.rake +3 -1
- data/lib/dkdeploy/scm/copy.rb +2 -0
- data/lib/dkdeploy/tasks/apache.rake +2 -0
- data/lib/dkdeploy/tasks/assets.rake +3 -1
- data/lib/dkdeploy/tasks/current_folder.rake +3 -1
- data/lib/dkdeploy/tasks/db.rake +138 -151
- data/lib/dkdeploy/tasks/deploy.rake +2 -0
- data/lib/dkdeploy/tasks/enhanced_symlinks.rake +2 -0
- data/lib/dkdeploy/tasks/fail.rake +2 -0
- data/lib/dkdeploy/tasks/file_access.rake +2 -0
- data/lib/dkdeploy/tasks/maintenance.rake +2 -0
- data/lib/dkdeploy/tasks/mysql.rake +2 -0
- data/lib/dkdeploy/tasks/project_version.rake +2 -0
- data/lib/dkdeploy/tasks/utils.rake +2 -0
- data/spec/fixtures/application/Capfile +2 -0
- data/spec/fixtures/application/Gemfile +2 -0
- data/spec/fixtures/application/config/deploy.rb +25 -23
- data/spec/fixtures/application/config/deploy/dev.rb +2 -0
- data/spec/fixtures/capistrano/configuration/add_output_after_create_symlink.rb +2 -0
- data/spec/fixtures/capistrano/configuration/custom_compass_sources.rb +2 -0
- data/spec/fixtures/capistrano/configuration/custom_file_access.rb +2 -0
- data/spec/fixtures/capistrano/configuration/default_deployment_behaviour.rb +2 -0
- metadata +15 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e58ab7e8cfabba6a3487df0d9f71d5ebe51ee792d879a222192fcf2505984ba5
|
4
|
+
data.tar.gz: 8e677ff0e1ce67d678113e6c834691930f1f905bae404050e05a7d819bdc232f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db22a4b79f0377304670da85caf31b137074d2eb72c49732cdef0799bec84c877aadee81d51d5a46925af3d9e41cc6ff525ec58994671cb468a50d3dbbbcf5cd
|
7
|
+
data.tar.gz: ef76a89ae190848e8fd5f789a1c2dc13ba91ed898f266233c256a4479054ef126ace8ba9c02a9adbe1e84de7933cfba06c88e48701c9e712d0ce9c0e959c2cb0
|
data/.rubocop.yml
CHANGED
@@ -5,21 +5,19 @@ AllCops:
|
|
5
5
|
- 'config/**/*'
|
6
6
|
- 'Vagrantfile'
|
7
7
|
- 'vendor/**/*'
|
8
|
-
TargetRubyVersion: 2.
|
8
|
+
TargetRubyVersion: 2.5
|
9
9
|
ExtraDetails: true
|
10
10
|
DisplayStyleGuide: true
|
11
11
|
DisplayCopNames: true
|
12
|
-
GlobalVars:
|
12
|
+
Style/GlobalVars:
|
13
13
|
AllowedVariables: []
|
14
|
-
MethodLength:
|
14
|
+
Metrics/MethodLength:
|
15
15
|
Max: 25
|
16
|
-
LineLength:
|
16
|
+
Layout/LineLength:
|
17
17
|
Max: 200
|
18
|
-
SpecialGlobalVars:
|
18
|
+
Style/SpecialGlobalVars:
|
19
19
|
Enabled: false
|
20
|
-
|
21
|
-
Enabled: false
|
22
|
-
CyclomaticComplexity:
|
20
|
+
Metrics/CyclomaticComplexity:
|
23
21
|
Max: 10
|
24
22
|
Metrics/BlockLength:
|
25
23
|
Enabled: false
|
@@ -27,3 +25,31 @@ Style/FormatStringToken:
|
|
27
25
|
Enabled: false
|
28
26
|
Style/MixinUsage:
|
29
27
|
Enabled: false
|
28
|
+
Layout/EmptyLinesAroundAttributeAccessor:
|
29
|
+
Enabled: true
|
30
|
+
Layout/SpaceAroundMethodCallOperator:
|
31
|
+
Enabled: true
|
32
|
+
Lint/DeprecatedOpenSSLConstant:
|
33
|
+
Enabled: true
|
34
|
+
Lint/MixedRegexpCaptureTypes:
|
35
|
+
Enabled: true
|
36
|
+
Lint/RaiseException:
|
37
|
+
Enabled: true
|
38
|
+
Lint/StructNewOverride:
|
39
|
+
Enabled: true
|
40
|
+
Style/ExponentialNotation:
|
41
|
+
Enabled: true
|
42
|
+
Style/HashEachMethods:
|
43
|
+
Enabled: true
|
44
|
+
Style/HashTransformKeys:
|
45
|
+
Enabled: true
|
46
|
+
Style/HashTransformValues:
|
47
|
+
Enabled: true
|
48
|
+
Style/RedundantFetchBlock:
|
49
|
+
Enabled: true
|
50
|
+
Style/RedundantRegexpCharacterClass:
|
51
|
+
Enabled: true
|
52
|
+
Style/RedundantRegexpEscape:
|
53
|
+
Enabled: true
|
54
|
+
Style/SlicingWithRange:
|
55
|
+
Enabled: true
|
data/.travis.yml
CHANGED
@@ -2,13 +2,14 @@ sudo: false
|
|
2
2
|
language: ruby
|
3
3
|
cache: bundler
|
4
4
|
rvm:
|
5
|
-
- 2.2
|
6
|
-
- 2.3
|
7
|
-
- 2.4
|
8
5
|
- 2.5
|
6
|
+
- 2.6
|
7
|
+
- 2.7
|
9
8
|
|
10
9
|
before_install:
|
11
|
-
- gem install bundler --no-
|
10
|
+
- gem install bundler --no-doc
|
11
|
+
- gem install bundler-audit --no-doc
|
12
12
|
|
13
13
|
script:
|
14
|
-
- bundle
|
14
|
+
- bundle-audit check --update
|
15
|
+
- bundle exec rubocop --display-cop-names --extra-details
|
data/Berksfile
CHANGED
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,38 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## [9.3.1] - 2020-08-20
|
6
|
+
### Summary
|
7
|
+
|
8
|
+
- use --no-tablespaces with mysqldump
|
9
|
+
|
10
|
+
## [9.3.0] - 2020-07-06
|
11
|
+
### Summary
|
12
|
+
|
13
|
+
- Update gem `capistrano` to 3.14.x
|
14
|
+
- Update gem `highline` to 2.0.x
|
15
|
+
- Update gem 'aruba' to 1.0.x
|
16
|
+
- Test ruby 2.7 via travis
|
17
|
+
- Requires Ruby v2.5 or later
|
18
|
+
|
19
|
+
## [9.2.4] - 2020-08-20
|
20
|
+
### Summary
|
21
|
+
|
22
|
+
- use --no-tablespaces with mysqldump
|
23
|
+
|
24
|
+
## [9.2.3] - 2019-05-29
|
25
|
+
### Summary
|
26
|
+
|
27
|
+
- Remove frozen string error
|
28
|
+
- Update interaction handler for new `htpasswd` versions
|
29
|
+
- Use correct test statement for task "remove_unless_symlinked"
|
30
|
+
|
31
|
+
## [9.2.2] - 2019-02-18
|
32
|
+
### Summary
|
33
|
+
|
34
|
+
- run tests and linter against Ruby 2.3
|
35
|
+
- fixed bug in clean_up_temporary_sources
|
36
|
+
|
5
37
|
## [9.2.1] - 2019-12-06
|
6
38
|
### Summary
|
7
39
|
|
@@ -16,6 +48,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
16
48
|
- we no longer remove maintenance_config_file_path forcefully to make failures more apparent
|
17
49
|
- improved shell independence
|
18
50
|
|
51
|
+
## [9.1.1] - 2020-08-20
|
52
|
+
### Summary
|
53
|
+
|
54
|
+
- use --no-tablespaces with mysqldump
|
55
|
+
|
19
56
|
## [9.1.0] - 2018-02-09
|
20
57
|
### Summary
|
21
58
|
|
@@ -23,6 +60,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
23
60
|
- Update capistrano 3.10.1
|
24
61
|
- Always execute tasks for each server or at rollback
|
25
62
|
|
63
|
+
## [9.0.1] - 2020-08-20
|
64
|
+
### Summary
|
65
|
+
|
66
|
+
- use --no-tablespaces with mysqldump
|
67
|
+
|
26
68
|
## [9.0.0] 2017-10-16
|
27
69
|
### Summary
|
28
70
|
|
@@ -43,6 +85,11 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
43
85
|
- remove TYPO3 specific configuration
|
44
86
|
- change some SCM roles from app to all
|
45
87
|
|
88
|
+
## [8.0.2] - 2020-08-20
|
89
|
+
### Summary
|
90
|
+
|
91
|
+
- use --no-tablespaces with mysqldump
|
92
|
+
|
46
93
|
## [8.0.1] - 2017-05-15
|
47
94
|
### Summary
|
48
95
|
|
@@ -54,9 +101,17 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
54
101
|
- first public release
|
55
102
|
|
56
103
|
[Unreleased]: https://github.com/dkdeploy/dkdeploy-core/compare/master...develop
|
104
|
+
[9.3.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.3.1
|
105
|
+
[9.3.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.3.0
|
106
|
+
[9.2.4]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.4
|
107
|
+
[9.2.3]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.3
|
108
|
+
[9.2.2]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.2
|
57
109
|
[9.2.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.1
|
58
110
|
[9.2.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.2.0
|
111
|
+
[9.1.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.1.1
|
59
112
|
[9.1.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.1.0
|
113
|
+
[9.0.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.0.1
|
60
114
|
[9.0.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v9.0.0
|
115
|
+
[8.0.2]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v8.0.2
|
61
116
|
[8.0.1]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v8.0.1
|
62
117
|
[8.0.0]: https://github.com/dkdeploy/dkdeploy-core/releases/tag/v8.0.0
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -64,7 +64,7 @@ The complete list of the dkdeploy constants you find in `/lib/capistrano/dkdeplo
|
|
64
64
|
|
65
65
|
### Prerequisite
|
66
66
|
|
67
|
-
rvm (v1.29.x) with installed Ruby 2.2.
|
67
|
+
rvm (v1.29.x) with installed Ruby 2.2 or newer.
|
68
68
|
|
69
69
|
Add the virtual box alias to your `hosts` file
|
70
70
|
|
@@ -74,7 +74,7 @@ Add the virtual box alias to your `hosts` file
|
|
74
74
|
|
75
75
|
1. Starting the local box (`vagrant up --provision`)
|
76
76
|
2. Checking coding styles (`rubocop`)
|
77
|
-
3. Running BDD cucumber tests (`cucumber`)
|
77
|
+
3. Running BDD cucumber tests (`BUNDLER_VERSION=2.1.4 cucumber`)
|
78
78
|
|
79
79
|
## Contributing
|
80
80
|
|
@@ -84,7 +84,7 @@ Add the virtual box alias to your `hosts` file
|
|
84
84
|
4. If project is not checked out already do git clone `git@github.com:dkdeploy/dkdeploy-core.git`
|
85
85
|
5. Checkout origin develop branch (`git checkout --track -b develop origin/develop`)
|
86
86
|
6. Git flow initialze `git flow init -d`
|
87
|
-
7. Installing gems `bundle install`
|
87
|
+
7. Installing gems `BUNDLER_VERSION=1.17.3 bundle install`
|
88
88
|
8. Create new feature branch (`git flow feature start my-new-feature`)
|
89
89
|
9. Run tests (README.md Testing)
|
90
90
|
10. Commit your changes (`git commit -am 'Add some feature'`)
|
data/Rakefile
CHANGED
data/Vagrantfile
CHANGED
@@ -19,6 +19,7 @@ Vagrant.configure(2) do |config|
|
|
19
19
|
|
20
20
|
config.vm.define('dkdeploy-core', primary: true) do |master_config|
|
21
21
|
master_config.vm.network 'private_network', ip: ip_address
|
22
|
+
master_config.vm.hostname = domain
|
22
23
|
|
23
24
|
# Chef settings
|
24
25
|
master_config.vm.provision :chef_solo do |chef|
|
@@ -41,14 +42,12 @@ Vagrant.configure(2) do |config|
|
|
41
42
|
'--audio', 'none'
|
42
43
|
]
|
43
44
|
end
|
44
|
-
end
|
45
45
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
config.vm.post_up_message = "Either install Vagrant plugin 'landrush' or add this entry to your host file: #{ip_address} #{domain}"
|
46
|
+
unless Vagrant.has_plugin?('vagrant-hostsupdater')
|
47
|
+
master_config.vm.post_up_message = <<-HEREDOC
|
48
|
+
Add following entries to your host file or install vagrant plugin vagrant-hostsupdater ("vagrant plugin install vagrant-hostsupdater") and restart virtual box
|
49
|
+
#{ip_address} #{domain}
|
50
|
+
HEREDOC
|
51
|
+
end
|
53
52
|
end
|
54
53
|
end
|
data/dkdeploy-core.gemspec
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
lib = File.expand_path('lib', __dir__)
|
2
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
3
5
|
require 'dkdeploy/core/version'
|
@@ -11,14 +13,14 @@ Gem::Specification.new do |spec|
|
|
11
13
|
spec.description = 'dkd basic deployment tasks and strategies'
|
12
14
|
spec.summary = 'dkd basic deployment tasks and strategies'
|
13
15
|
spec.homepage = 'https://github.com/dkdeploy/dkdeploy-core'
|
14
|
-
spec.required_ruby_version = '~> 2.
|
16
|
+
spec.required_ruby_version = '~> 2.5'
|
15
17
|
|
16
18
|
spec.files = `git ls-files`.split($/)
|
17
|
-
spec.executables = spec.files.grep(%r{^bin
|
18
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)
|
19
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
20
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
21
|
spec.require_paths = ['lib']
|
20
22
|
|
21
|
-
spec.add_development_dependency 'aruba', '~> 0
|
23
|
+
spec.add_development_dependency 'aruba', '~> 1.0'
|
22
24
|
spec.add_development_dependency 'bundler'
|
23
25
|
spec.add_development_dependency 'cucumber', '~> 2.4'
|
24
26
|
spec.add_development_dependency 'dkdeploy-test_environment', '~> 2.0'
|
@@ -26,8 +28,8 @@ Gem::Specification.new do |spec|
|
|
26
28
|
spec.add_development_dependency 'pry', '~> 0.10'
|
27
29
|
spec.add_development_dependency 'rake'
|
28
30
|
spec.add_development_dependency 'rspec', '~> 3.5'
|
29
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
31
|
+
spec.add_development_dependency 'rubocop', '~> 0.86.0'
|
30
32
|
|
31
|
-
spec.add_dependency 'capistrano', '~> 3.
|
32
|
-
spec.add_dependency 'highline', '~>
|
33
|
+
spec.add_dependency 'capistrano', '~> 3.14.1'
|
34
|
+
spec.add_dependency 'highline', '~> 2.0.3'
|
33
35
|
end
|
data/features/support/env.rb
CHANGED
data/lib/dkdeploy.rb
CHANGED
data/lib/dkdeploy/constants.rb
CHANGED
data/lib/dkdeploy/dsl.rb
CHANGED
data/lib/dkdeploy/helpers/db.rb
CHANGED
data/lib/dkdeploy/i18n.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Dkdeploy
|
2
4
|
module InteractionHandler
|
3
5
|
# Interaction handler for mysql
|
@@ -28,7 +30,7 @@ module Dkdeploy
|
|
28
30
|
return raise 'Unexpected data from stream. Can not send password to undefined stream' unless @mysql_error_seen
|
29
31
|
|
30
32
|
# combine the multiple lines from error message. The fact that the error message will be shown multiple times is simply ignored
|
31
|
-
@return_message
|
33
|
+
@return_message += data
|
32
34
|
message = 'Error on executing MySQL command! Response (error code) is: '
|
33
35
|
SSHKit.config.output.send(:error, "#{message}\n #{@return_message}")
|
34
36
|
raise 'InteractionHandler caught a MySQL error'
|
data/lib/dkdeploy/scm/copy.rake
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
namespace :copy do
|
2
4
|
desc 'Check if all configuration variables and copy sources exist'
|
3
5
|
task :check do
|
@@ -62,7 +64,7 @@ namespace :copy do
|
|
62
64
|
# removes the remote temp path including the uploaded archive
|
63
65
|
on release_roles :all do
|
64
66
|
info I18n.t('file.remove', path: remote_archive_path, scope: :dkdeploy)
|
65
|
-
execute :rm, '-rf',
|
67
|
+
execute :rm, '-rf', remote_archive_path
|
66
68
|
end
|
67
69
|
end
|
68
70
|
|
data/lib/dkdeploy/scm/copy.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'i18n'
|
2
4
|
require 'dkdeploy/i18n'
|
3
5
|
require 'dkdeploy/helpers/common'
|
@@ -44,7 +46,7 @@ namespace :assets do
|
|
44
46
|
on release_roles :web do
|
45
47
|
info I18n.t('directory.create', scope: :dkdeploy)
|
46
48
|
execute :mkdir, '-p', shared_path
|
47
|
-
execute :htpasswd, '-c', htpasswd_path, username, interaction_handler:
|
49
|
+
execute :htpasswd, '-c', htpasswd_path, username, interaction_handler: { /.*password.*/i => "#{password}\n" }
|
48
50
|
info I18n.t('tasks.assets.add_htpasswd.successfully_created', scope: :dkdeploy)
|
49
51
|
end
|
50
52
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
include Capistrano::DSL
|
2
4
|
|
3
5
|
require 'dkdeploy/i18n'
|
@@ -6,7 +8,7 @@ namespace :current_folder do
|
|
6
8
|
desc "Delete current folder unless it's a symlink"
|
7
9
|
task :remove_unlesss_symlinked do
|
8
10
|
on release_roles :all do
|
9
|
-
if test "[ -d #{current_path} && ! -L #{current_path} ]"
|
11
|
+
if test "[ -d #{current_path} ] && [ ! -L #{current_path} ]"
|
10
12
|
execute :rm, '-rf', current_path
|
11
13
|
else
|
12
14
|
info I18n.t('info.ignoring_current_folder', scope: :dkdeploy)
|
data/lib/dkdeploy/tasks/db.rake
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'dkdeploy/constants'
|
2
4
|
require 'dkdeploy/helpers/common'
|
3
5
|
require 'dkdeploy/helpers/db'
|
@@ -80,23 +82,21 @@ namespace :db do
|
|
80
82
|
end
|
81
83
|
|
82
84
|
on primary :backend do
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
execute :rm, '-f', remote_file_name
|
99
|
-
end
|
85
|
+
db_settings = read_db_settings_for_context(self)
|
86
|
+
execute :rm, '-f', remote_zipped_file_name
|
87
|
+
execute :rm, '-f', remote_file_name
|
88
|
+
upload! local_zipped_file_name, remote_zipped_file_name, via: :scp
|
89
|
+
execute :gunzip, remote_zipped_file_name
|
90
|
+
execute :mysql,
|
91
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
92
|
+
'-u', db_settings.fetch('username'),
|
93
|
+
'-p',
|
94
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
|
95
|
+
'-e', "'source #{remote_file_name}'",
|
96
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
97
|
+
ensure
|
98
|
+
execute :rm, '-f', remote_zipped_file_name
|
99
|
+
execute :rm, '-f', remote_file_name
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
@@ -110,24 +110,22 @@ namespace :db do
|
|
110
110
|
remote_zipped_dump_file = "#{remote_dump_file}.gz"
|
111
111
|
|
112
112
|
on primary :backend do
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
execute :rm, '-f', remote_zipped_dump_file
|
130
|
-
end
|
113
|
+
db_settings = read_db_settings_for_context(self)
|
114
|
+
execute :rm, '-f', remote_dump_file
|
115
|
+
execute :rm, '-f', remote_zipped_dump_file
|
116
|
+
execute :mysqldump,
|
117
|
+
'--no-data', '--skip-set-charset', '--no-tablespaces',
|
118
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
119
|
+
'-u', db_settings.fetch('username'),
|
120
|
+
'-p',
|
121
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
|
122
|
+
'>', remote_dump_file,
|
123
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
124
|
+
execute :gzip, remote_dump_file
|
125
|
+
download! remote_zipped_dump_file, 'temp', via: :scp
|
126
|
+
ensure
|
127
|
+
execute :rm, '-f', remote_dump_file
|
128
|
+
execute :rm, '-f', remote_zipped_dump_file
|
131
129
|
end
|
132
130
|
end
|
133
131
|
|
@@ -138,29 +136,28 @@ namespace :db do
|
|
138
136
|
remote_zipped_dump_file = "#{remote_dump_file}.gz"
|
139
137
|
|
140
138
|
on primary :backend do
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
execute :rm, '-f', remote_zipped_dump_file
|
139
|
+
db_settings = read_db_settings_for_context(self)
|
140
|
+
execute :rm, '-f', remote_dump_file
|
141
|
+
execute :rm, '-f', remote_zipped_dump_file
|
145
142
|
|
146
|
-
|
147
|
-
|
148
|
-
end
|
149
|
-
|
150
|
-
execute :mysqldump,
|
151
|
-
"--default-character-set=#{db_settings.fetch('charset')}",
|
152
|
-
'--skip-set-charset',
|
153
|
-
'-u', db_settings.fetch('username'),
|
154
|
-
'-p',
|
155
|
-
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), ignore_tables_command_line, db_settings.fetch('name'),
|
156
|
-
'>', remote_dump_file,
|
157
|
-
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
158
|
-
execute :gzip, remote_dump_file
|
159
|
-
download! remote_zipped_dump_file, 'temp', via: :scp
|
160
|
-
ensure
|
161
|
-
execute :rm, '-f', remote_dump_file
|
162
|
-
execute :rm, '-f', remote_zipped_dump_file
|
143
|
+
ignore_tables_command_line = ignore_tables.inject('') do |command_line, table|
|
144
|
+
command_line + " --ignore-table=#{db_settings.fetch('name')}.#{table}"
|
163
145
|
end
|
146
|
+
|
147
|
+
execute :mysqldump,
|
148
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
149
|
+
'--skip-set-charset',
|
150
|
+
'--no-tablespaces',
|
151
|
+
'-u', db_settings.fetch('username'),
|
152
|
+
'-p',
|
153
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), ignore_tables_command_line, db_settings.fetch('name'),
|
154
|
+
'>', remote_dump_file,
|
155
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
156
|
+
execute :gzip, remote_dump_file
|
157
|
+
download! remote_zipped_dump_file, 'temp', via: :scp
|
158
|
+
ensure
|
159
|
+
execute :rm, '-f', remote_dump_file
|
160
|
+
execute :rm, '-f', remote_zipped_dump_file
|
164
161
|
end
|
165
162
|
end
|
166
163
|
|
@@ -174,24 +171,22 @@ namespace :db do
|
|
174
171
|
remote_zipped_dump_file = "#{remote_dump_file}.gz"
|
175
172
|
|
176
173
|
on primary :backend do
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
execute :rm, '-f', remote_zipped_dump_file
|
194
|
-
end
|
174
|
+
db_settings = read_db_settings_for_context(self)
|
175
|
+
execute :rm, '-f', remote_dump_file
|
176
|
+
execute :rm, '-f', remote_zipped_dump_file
|
177
|
+
execute :mysqldump,
|
178
|
+
'--no-data', '--skip-set-charset', '--no-tablespaces',
|
179
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
180
|
+
'-u', db_settings.fetch('username'),
|
181
|
+
'-p',
|
182
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'), table_name,
|
183
|
+
'>', remote_dump_file,
|
184
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
185
|
+
execute :gzip, remote_dump_file
|
186
|
+
download! remote_zipped_dump_file, zipped_dump_file, via: :scp
|
187
|
+
ensure
|
188
|
+
execute :rm, '-f', remote_dump_file
|
189
|
+
execute :rm, '-f', remote_zipped_dump_file
|
195
190
|
end
|
196
191
|
end
|
197
192
|
|
@@ -209,27 +204,25 @@ namespace :db do
|
|
209
204
|
FileUtils.mkdir_p file_path
|
210
205
|
|
211
206
|
on primary :backend do
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
execute :rm, '-f', remote_zipped_file
|
232
|
-
end
|
207
|
+
db_settings = read_db_settings_for_context(self)
|
208
|
+
execute :rm, '-f', remote_file_name
|
209
|
+
execute :rm, '-f', remote_zipped_file
|
210
|
+
execute :mysqldump,
|
211
|
+
'--no-data', '--skip-set-charset', '--no-tablespaces',
|
212
|
+
'--no-create-info', '--skip-comments',
|
213
|
+
'--skip-extended-insert', '--skip-set-charset',
|
214
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
215
|
+
'-u', db_settings.fetch('username'),
|
216
|
+
'-p',
|
217
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'),
|
218
|
+
db_settings.fetch('name'), table_names.join(' '),
|
219
|
+
'>', remote_file_name,
|
220
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
221
|
+
execute :gzip, remote_file_name
|
222
|
+
download! remote_zipped_file, local_zipped_file, via: :scp
|
223
|
+
ensure
|
224
|
+
execute :rm, '-f', remote_file_name
|
225
|
+
execute :rm, '-f', remote_zipped_file
|
233
226
|
end
|
234
227
|
|
235
228
|
run_locally do
|
@@ -244,23 +237,21 @@ namespace :db do
|
|
244
237
|
remote_zipped_default_content_file = "#{remote_default_content_file}.gz"
|
245
238
|
|
246
239
|
on primary :backend do
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
execute :rm, '-f', remote_zipped_default_content_file
|
263
|
-
end
|
240
|
+
db_settings = read_db_settings_for_context(self)
|
241
|
+
execute :rm, '-f', remote_default_content_file
|
242
|
+
execute :rm, '-f', remote_zipped_default_content_file
|
243
|
+
upload! local_zipped_default_content_file, remote_zipped_default_content_file, via: :scp
|
244
|
+
execute :gunzip, remote_zipped_default_content_file
|
245
|
+
execute :mysql,
|
246
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
247
|
+
'-u', db_settings.fetch('username'),
|
248
|
+
'-p',
|
249
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
|
250
|
+
'-e', "'source #{remote_default_content_file}'",
|
251
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
252
|
+
ensure
|
253
|
+
execute :rm, '-f', remote_default_content_file
|
254
|
+
execute :rm, '-f', remote_zipped_default_content_file
|
264
255
|
end
|
265
256
|
end
|
266
257
|
|
@@ -271,22 +262,20 @@ namespace :db do
|
|
271
262
|
remote_zipped_default_structure_file = "#{remote_default_structure_file}.gz"
|
272
263
|
|
273
264
|
on primary :backend do
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
execute :rm, '-f', remote_zipped_default_structure_file
|
289
|
-
end
|
265
|
+
db_settings = read_db_settings_for_context(self)
|
266
|
+
execute :rm, '-f', remote_default_structure_file
|
267
|
+
execute :rm, '-f', remote_zipped_default_structure_file
|
268
|
+
upload! local_zipped_default_structure_file, remote_zipped_default_structure_file, via: :scp
|
269
|
+
execute :gunzip, remote_zipped_default_structure_file
|
270
|
+
execute :mysql,
|
271
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
272
|
+
'-u', db_settings.fetch('username'), '-p',
|
273
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'), db_settings.fetch('name'),
|
274
|
+
'-e', "'source #{remote_default_structure_file}'",
|
275
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
276
|
+
ensure
|
277
|
+
execute :rm, '-f', remote_default_structure_file
|
278
|
+
execute :rm, '-f', remote_zipped_default_structure_file
|
290
279
|
end
|
291
280
|
end
|
292
281
|
|
@@ -305,27 +294,25 @@ namespace :db do
|
|
305
294
|
local_zipped_file = "#{local_file_name}.gz"
|
306
295
|
|
307
296
|
on primary :backend do
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
execute :rm, '-f', remote_zipped_file
|
328
|
-
end
|
297
|
+
db_settings = read_db_settings_for_context(self)
|
298
|
+
execute :rm, '-f', remote_file_name
|
299
|
+
execute :rm, '-f', remote_zipped_file
|
300
|
+
execute :mysqldump,
|
301
|
+
"--default-character-set=#{db_settings.fetch('charset')}",
|
302
|
+
'--no-create-info', '--skip-comments',
|
303
|
+
'--skip-extended-insert', '--skip-set-charset',
|
304
|
+
'--complete-insert', '--no-tablespaces',
|
305
|
+
'-u', db_settings.fetch('username'),
|
306
|
+
'-p',
|
307
|
+
'-h', db_settings.fetch('host'), '-P', db_settings.fetch('port'),
|
308
|
+
db_settings.fetch('name'), table_names,
|
309
|
+
'>', remote_file_name,
|
310
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
311
|
+
execute :gzip, remote_file_name
|
312
|
+
download! remote_zipped_file, local_zipped_file, via: :scp
|
313
|
+
ensure
|
314
|
+
execute :rm, '-f', remote_file_name
|
315
|
+
execute :rm, '-f', remote_zipped_file
|
329
316
|
end
|
330
317
|
|
331
318
|
run_locally do
|
@@ -390,14 +377,14 @@ namespace :db do
|
|
390
377
|
'-e', "'source #{remote_dump_file}'",
|
391
378
|
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch('password'))
|
392
379
|
end
|
393
|
-
rescue SSHKit::Command::Failed =>
|
380
|
+
rescue SSHKit::Command::Failed => e
|
394
381
|
run_locally do
|
395
382
|
error "Removing #{remote_dump_file} and #{remote_dump_md5_file}"
|
396
383
|
execute :rm, '-f', remote_dump_md5_file
|
397
384
|
execute :rm, '-f', remote_dump_file
|
398
385
|
end
|
399
386
|
task.reenable
|
400
|
-
raise "upload_tables failed: #{
|
387
|
+
raise "upload_tables failed: #{e.message}"
|
401
388
|
end
|
402
389
|
end
|
403
390
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
set :application, 'test_app'
|
2
4
|
|
3
5
|
SSHKit.config.command_map.prefix[:compass].push 'bundle exec'
|
@@ -16,6 +18,8 @@ set :asset_default_content, %w[download]
|
|
16
18
|
set :asset_exclude_file, 'config/assets_exclude_file.txt'
|
17
19
|
set :asset_folders, %w[download]
|
18
20
|
|
21
|
+
set :additional_ignore_tables, %w[test_table]
|
22
|
+
|
19
23
|
require 'dkdeploy/interaction_handler/mysql'
|
20
24
|
namespace :db do
|
21
25
|
task :sql_error do
|
@@ -27,29 +31,27 @@ namespace :db do
|
|
27
31
|
sql_string = StringIO.new "INSERT INTO be_users (username, password, admin, tstamp, crdate)
|
28
32
|
VALUES ('#{username}', MD5('#{password}'), 1, #{now}, #{now});"
|
29
33
|
on primary :backend do
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
execute :rm, '-rf', remote_db_file
|
52
|
-
end
|
34
|
+
db_settings = {
|
35
|
+
charset: 'utf8',
|
36
|
+
username: 'root',
|
37
|
+
password: 'ilikerandompasswords',
|
38
|
+
host: '127.0.0.1',
|
39
|
+
port: 3306,
|
40
|
+
name: 'dkdeploy_core'
|
41
|
+
}
|
42
|
+
execute :mkdir, '-p', remote_db_file_path
|
43
|
+
execute :rm, '-rf', remote_db_file
|
44
|
+
|
45
|
+
upload! sql_string, remote_db_file
|
46
|
+
execute :mysql,
|
47
|
+
"--default-character-set=#{db_settings.fetch(:charset)}",
|
48
|
+
'-u', db_settings.fetch(:username),
|
49
|
+
'-p',
|
50
|
+
'-h', db_settings.fetch(:host), '-P', db_settings.fetch(:port), db_settings.fetch(:name),
|
51
|
+
'-e', "'source #{remote_db_file}'",
|
52
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch(:password))
|
53
|
+
ensure
|
54
|
+
execute :rm, '-rf', remote_db_file
|
53
55
|
end
|
54
56
|
end
|
55
57
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dkdeploy-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 9.
|
4
|
+
version: 9.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Timo Webler
|
8
8
|
- Nicolai Reuschling
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2020-08-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aruba
|
@@ -17,14 +17,14 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0
|
20
|
+
version: '1.0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 0
|
27
|
+
version: '1.0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: bundler
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,42 +129,42 @@ dependencies:
|
|
129
129
|
requirements:
|
130
130
|
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: 0.
|
132
|
+
version: 0.86.0
|
133
133
|
type: :development
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
137
|
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
|
-
version: 0.
|
139
|
+
version: 0.86.0
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: capistrano
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
144
|
- - "~>"
|
145
145
|
- !ruby/object:Gem::Version
|
146
|
-
version: 3.
|
146
|
+
version: 3.14.1
|
147
147
|
type: :runtime
|
148
148
|
prerelease: false
|
149
149
|
version_requirements: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
151
|
- - "~>"
|
152
152
|
- !ruby/object:Gem::Version
|
153
|
-
version: 3.
|
153
|
+
version: 3.14.1
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
155
|
name: highline
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
158
|
- - "~>"
|
159
159
|
- !ruby/object:Gem::Version
|
160
|
-
version:
|
160
|
+
version: 2.0.3
|
161
161
|
type: :runtime
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
165
|
- - "~>"
|
166
166
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
167
|
+
version: 2.0.3
|
168
168
|
description: dkd basic deployment tasks and strategies
|
169
169
|
email:
|
170
170
|
- timo.webler@dkd.de
|
@@ -262,7 +262,7 @@ homepage: https://github.com/dkdeploy/dkdeploy-core
|
|
262
262
|
licenses:
|
263
263
|
- MIT
|
264
264
|
metadata: {}
|
265
|
-
post_install_message:
|
265
|
+
post_install_message:
|
266
266
|
rdoc_options: []
|
267
267
|
require_paths:
|
268
268
|
- lib
|
@@ -270,16 +270,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
270
270
|
requirements:
|
271
271
|
- - "~>"
|
272
272
|
- !ruby/object:Gem::Version
|
273
|
-
version: '2.
|
273
|
+
version: '2.5'
|
274
274
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
276
|
- - ">="
|
277
277
|
- !ruby/object:Gem::Version
|
278
278
|
version: '0'
|
279
279
|
requirements: []
|
280
|
-
|
281
|
-
|
282
|
-
signing_key:
|
280
|
+
rubygems_version: 3.1.4
|
281
|
+
signing_key:
|
283
282
|
specification_version: 4
|
284
283
|
summary: dkd basic deployment tasks and strategies
|
285
284
|
test_files:
|