dkdeploy-core 8.0.2 → 9.0.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 +5 -5
- data/.rubocop.yml +9 -0
- data/.travis.yml +13 -0
- data/CHANGELOG.md +38 -0
- data/CONTRIBUTORS.md +2 -0
- data/LICENSE +1 -1
- data/README.md +8 -5
- data/Vagrantfile +3 -10
- data/assets/dkdeploy-logo.png +0 -0
- data/config/vm/cookbooks/dkdeploy-core/recipes/default.rb +13 -1
- data/config/vm/cookbooks/dkdeploy-core/templates/my_extra_settings.erb +6 -0
- data/dkdeploy-core.gemspec +11 -12
- data/features/assets.feature +24 -26
- data/features/db.feature +4 -0
- data/features/mysql.feature +27 -0
- data/features/support/env.rb +1 -1
- data/lib/capistrano/dkdeploy/core.rb +11 -22
- data/lib/dkdeploy/constants.rb +5 -73
- data/lib/dkdeploy/core/version.rb +2 -2
- data/lib/dkdeploy/dsl.rb +1 -1
- data/lib/dkdeploy/helpers/assets.rb +0 -1
- data/lib/dkdeploy/helpers/db.rb +1 -1
- data/lib/dkdeploy/helpers/mysql.rb +17 -0
- data/lib/dkdeploy/i18n.rb +6 -0
- data/lib/dkdeploy/interaction_handler/mysql.rb +38 -0
- data/lib/dkdeploy/interaction_handler/password.rb +3 -2
- data/lib/dkdeploy/scm/copy.rake +76 -0
- data/lib/dkdeploy/scm/copy.rb +85 -0
- data/lib/dkdeploy/tasks/apache.rake +0 -1
- data/lib/dkdeploy/tasks/assets.rake +0 -1
- data/lib/dkdeploy/tasks/bower.rake +0 -1
- data/lib/dkdeploy/tasks/db.rake +20 -28
- data/lib/dkdeploy/tasks/deploy.rake +1 -11
- data/lib/dkdeploy/tasks/enhanced_symlinks.rake +3 -3
- data/lib/dkdeploy/tasks/file_access.rake +8 -9
- data/lib/dkdeploy/tasks/maintenance.rake +0 -1
- data/lib/dkdeploy/tasks/mysql.rake +50 -0
- data/lib/dkdeploy/tasks/project_version.rake +0 -1
- data/lib/dkdeploy/tasks/utils.rake +6 -2
- data/spec/fixtures/application/Gemfile +1 -1
- data/spec/fixtures/application/config/deploy/dev.rb +6 -3
- data/spec/fixtures/application/config/deploy.rb +42 -5
- data/spec/fixtures/application/config/preseed/default_content.sql.gz +0 -0
- data/spec/fixtures/application/config/preseed/download.tar.gz +0 -0
- data/spec/fixtures/capistrano/configuration/add_output_after_create_symlink.rb +1 -2
- data/spec/fixtures/capistrano/configuration/custom_compass_sources.rb +2 -2
- metadata +41 -55
- data/lib/dkdeploy/copy.rb +0 -121
- data/lib/dkdeploy/tasks/copy.rake +0 -26
- data/spec/fixtures/application/config/preseed/fileadmin.tar.gz +0 -0
- data/spec/fixtures/application/config/preseed/uploads.tar.gz +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
set :deploy_to, '/var/www/dkdeploy'
|
2
|
-
server 'dkdeploy-core.dev', roles: %w
|
2
|
+
server 'dkdeploy-core.dev', roles: %w[web app backend db], primary: true
|
3
3
|
|
4
4
|
# no ssh compression on the dev stage
|
5
5
|
set :ssh_options, {
|
@@ -18,11 +18,11 @@ unless ssh_key_files.empty?
|
|
18
18
|
end
|
19
19
|
|
20
20
|
set :copy_source, 'htdocs'
|
21
|
-
set :copy_exclude, %w
|
21
|
+
set :copy_exclude, %w[
|
22
22
|
Gemfile*
|
23
23
|
.hidden
|
24
24
|
**/.hidden
|
25
|
-
|
25
|
+
]
|
26
26
|
|
27
27
|
# version file path
|
28
28
|
set :version_file_path, ''
|
@@ -33,3 +33,6 @@ set :default_file_access_owner_of_release_path, 'vagrant'
|
|
33
33
|
|
34
34
|
set :default_file_access_group_of_shared_path, 'vagrant'
|
35
35
|
set :default_file_access_group_of_release_path, 'vagrant'
|
36
|
+
|
37
|
+
# mysql slow query log for performance analysis
|
38
|
+
set :mysql_slow_log, '/var/log/mysql-default/slow-queries.log'
|
@@ -5,14 +5,51 @@ SSHKit.config.command_map.prefix[:chown].push 'sudo'
|
|
5
5
|
SSHKit.config.command_map.prefix[:chgrp].push 'sudo'
|
6
6
|
SSHKit.config.command_map.prefix[:chmod].push 'sudo'
|
7
7
|
|
8
|
-
set :asset_folders, %w
|
9
|
-
set :asset_default_content, %w
|
8
|
+
set :asset_folders, %w[download]
|
9
|
+
set :asset_default_content, %w[download]
|
10
10
|
set :asset_exclude_file, 'config/assets_exclude_file.txt'
|
11
11
|
|
12
12
|
set :format_options, command_output: true
|
13
13
|
set :log_level, :debug
|
14
|
-
set :format, :pretty
|
15
14
|
|
16
|
-
set :asset_default_content, %w
|
15
|
+
set :asset_default_content, %w[download]
|
17
16
|
set :asset_exclude_file, 'config/assets_exclude_file.txt'
|
18
|
-
set :asset_folders, %w
|
17
|
+
set :asset_folders, %w[download]
|
18
|
+
|
19
|
+
require 'dkdeploy/interaction_handler/mysql'
|
20
|
+
namespace :db do
|
21
|
+
task :sql_error do
|
22
|
+
remote_db_file_path = File.join(shared_path, 'config')
|
23
|
+
remote_db_file = File.join(remote_db_file_path, 'broken.sql')
|
24
|
+
username = 'test_user'
|
25
|
+
password = "+p_secure[7Bvery_muchTL[E8yAGkMRT'A "
|
26
|
+
now = Time.now.to_i
|
27
|
+
sql_string = StringIO.new "INSERT INTO be_users (username, password, admin, tstamp, crdate)
|
28
|
+
VALUES ('#{username}', MD5('#{password}'), 1, #{now}, #{now});"
|
29
|
+
on primary :backend do
|
30
|
+
begin
|
31
|
+
db_settings = {
|
32
|
+
charset: 'utf8',
|
33
|
+
username: 'root',
|
34
|
+
password: 'ilikerandompasswords',
|
35
|
+
host: '127.0.0.1',
|
36
|
+
port: 3306,
|
37
|
+
name: 'dkdeploy_core'
|
38
|
+
}
|
39
|
+
execute :mkdir, '-p', remote_db_file_path
|
40
|
+
execute :rm, '-rf', remote_db_file
|
41
|
+
|
42
|
+
upload! sql_string, remote_db_file
|
43
|
+
execute :mysql,
|
44
|
+
"--default-character-set=#{db_settings.fetch(:charset)}",
|
45
|
+
'-u', db_settings.fetch(:username),
|
46
|
+
'-p',
|
47
|
+
'-h', db_settings.fetch(:host), '-P', db_settings.fetch(:port), db_settings.fetch(:name),
|
48
|
+
'-e', "'source #{remote_db_file}'",
|
49
|
+
interaction_handler: Dkdeploy::InteractionHandler::MySql.new(db_settings.fetch(:password))
|
50
|
+
ensure
|
51
|
+
execute :rm, '-rf', remote_db_file
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
Binary file
|
Binary file
|
metadata
CHANGED
@@ -1,62 +1,58 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dkdeploy-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 9.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Lars Tode
|
8
7
|
- Timo Webler
|
9
|
-
- Kieran Hayes
|
10
8
|
- Nicolai Reuschling
|
11
|
-
|
12
|
-
- Luka Lüdicke
|
13
|
-
autorequire:
|
9
|
+
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
date:
|
12
|
+
date: 2017-10-16 00:00:00.000000000 Z
|
17
13
|
dependencies:
|
18
14
|
- !ruby/object:Gem::Dependency
|
19
15
|
name: bundler
|
20
16
|
requirement: !ruby/object:Gem::Requirement
|
21
17
|
requirements:
|
22
|
-
- - "
|
18
|
+
- - ">="
|
23
19
|
- !ruby/object:Gem::Version
|
24
|
-
version:
|
20
|
+
version: '0'
|
25
21
|
type: :development
|
26
22
|
prerelease: false
|
27
23
|
version_requirements: !ruby/object:Gem::Requirement
|
28
24
|
requirements:
|
29
|
-
- - "
|
25
|
+
- - ">="
|
30
26
|
- !ruby/object:Gem::Version
|
31
|
-
version:
|
27
|
+
version: '0'
|
32
28
|
- !ruby/object:Gem::Dependency
|
33
29
|
name: rake
|
34
30
|
requirement: !ruby/object:Gem::Requirement
|
35
31
|
requirements:
|
36
|
-
- - "
|
32
|
+
- - ">="
|
37
33
|
- !ruby/object:Gem::Version
|
38
|
-
version: '
|
34
|
+
version: '0'
|
39
35
|
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
38
|
requirements:
|
43
|
-
- - "
|
39
|
+
- - ">="
|
44
40
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
41
|
+
version: '0'
|
46
42
|
- !ruby/object:Gem::Dependency
|
47
43
|
name: rspec
|
48
44
|
requirement: !ruby/object:Gem::Requirement
|
49
45
|
requirements:
|
50
46
|
- - "~>"
|
51
47
|
- !ruby/object:Gem::Version
|
52
|
-
version: '3.
|
48
|
+
version: '3.5'
|
53
49
|
type: :development
|
54
50
|
prerelease: false
|
55
51
|
version_requirements: !ruby/object:Gem::Requirement
|
56
52
|
requirements:
|
57
53
|
- - "~>"
|
58
54
|
- !ruby/object:Gem::Version
|
59
|
-
version: '3.
|
55
|
+
version: '3.5'
|
60
56
|
- !ruby/object:Gem::Dependency
|
61
57
|
name: cucumber
|
62
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -77,14 +73,14 @@ dependencies:
|
|
77
73
|
requirements:
|
78
74
|
- - "~>"
|
79
75
|
- !ruby/object:Gem::Version
|
80
|
-
version:
|
76
|
+
version: 0.50.0
|
81
77
|
type: :development
|
82
78
|
prerelease: false
|
83
79
|
version_requirements: !ruby/object:Gem::Requirement
|
84
80
|
requirements:
|
85
81
|
- - "~>"
|
86
82
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
83
|
+
version: 0.50.0
|
88
84
|
- !ruby/object:Gem::Dependency
|
89
85
|
name: aruba
|
90
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,56 +115,42 @@ dependencies:
|
|
119
115
|
requirements:
|
120
116
|
- - "~>"
|
121
117
|
- !ruby/object:Gem::Version
|
122
|
-
version: 0.10
|
118
|
+
version: '0.10'
|
123
119
|
type: :development
|
124
120
|
prerelease: false
|
125
121
|
version_requirements: !ruby/object:Gem::Requirement
|
126
122
|
requirements:
|
127
123
|
- - "~>"
|
128
124
|
- !ruby/object:Gem::Version
|
129
|
-
version: 0.10
|
125
|
+
version: '0.10'
|
130
126
|
- !ruby/object:Gem::Dependency
|
131
127
|
name: dkdeploy-test_environment
|
132
128
|
requirement: !ruby/object:Gem::Requirement
|
133
129
|
requirements:
|
134
130
|
- - "~>"
|
135
131
|
- !ruby/object:Gem::Version
|
136
|
-
version: '
|
132
|
+
version: '2.0'
|
137
133
|
type: :development
|
138
134
|
prerelease: false
|
139
135
|
version_requirements: !ruby/object:Gem::Requirement
|
140
136
|
requirements:
|
141
137
|
- - "~>"
|
142
138
|
- !ruby/object:Gem::Version
|
143
|
-
version: '
|
139
|
+
version: '2.0'
|
144
140
|
- !ruby/object:Gem::Dependency
|
145
141
|
name: capistrano
|
146
142
|
requirement: !ruby/object:Gem::Requirement
|
147
143
|
requirements:
|
148
144
|
- - "~>"
|
149
145
|
- !ruby/object:Gem::Version
|
150
|
-
version: 3.
|
146
|
+
version: 3.9.0
|
151
147
|
type: :runtime
|
152
148
|
prerelease: false
|
153
149
|
version_requirements: !ruby/object:Gem::Requirement
|
154
150
|
requirements:
|
155
151
|
- - "~>"
|
156
152
|
- !ruby/object:Gem::Version
|
157
|
-
version: 3.
|
158
|
-
- !ruby/object:Gem::Dependency
|
159
|
-
name: sshkit
|
160
|
-
requirement: !ruby/object:Gem::Requirement
|
161
|
-
requirements:
|
162
|
-
- - '='
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: 1.10.0
|
165
|
-
type: :runtime
|
166
|
-
prerelease: false
|
167
|
-
version_requirements: !ruby/object:Gem::Requirement
|
168
|
-
requirements:
|
169
|
-
- - '='
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
version: 1.10.0
|
153
|
+
version: 3.9.0
|
172
154
|
- !ruby/object:Gem::Dependency
|
173
155
|
name: highline
|
174
156
|
requirement: !ruby/object:Gem::Requirement
|
@@ -185,28 +167,28 @@ dependencies:
|
|
185
167
|
version: 1.7.1
|
186
168
|
description: dkd basic deployment tasks and strategies
|
187
169
|
email:
|
188
|
-
- lars.tode@dkd.de
|
189
170
|
- timo.webler@dkd.de
|
190
|
-
- kieran.hayes@dkd.de
|
191
171
|
- nicolai.reuschling@dkd.de
|
192
|
-
- johannes.goslar@dkd.de
|
193
|
-
- luka.luedicke@dkd.de
|
194
172
|
executables: []
|
195
173
|
extensions: []
|
196
174
|
extra_rdoc_files: []
|
197
175
|
files:
|
198
176
|
- ".gitignore"
|
199
177
|
- ".rubocop.yml"
|
178
|
+
- ".travis.yml"
|
200
179
|
- Berksfile
|
201
180
|
- Berksfile.lock
|
181
|
+
- CHANGELOG.md
|
202
182
|
- CONTRIBUTORS.md
|
203
183
|
- Gemfile
|
204
184
|
- LICENSE
|
205
185
|
- README.md
|
206
186
|
- Rakefile
|
207
187
|
- Vagrantfile
|
188
|
+
- assets/dkdeploy-logo.png
|
208
189
|
- config/vm/cookbooks/dkdeploy-core/metadata.rb
|
209
190
|
- config/vm/cookbooks/dkdeploy-core/recipes/default.rb
|
191
|
+
- config/vm/cookbooks/dkdeploy-core/templates/my_extra_settings.erb
|
210
192
|
- dkdeploy-core.gemspec
|
211
193
|
- features/apache.feature
|
212
194
|
- features/assets.feature
|
@@ -218,6 +200,7 @@ files:
|
|
218
200
|
- features/error_handlers.feature
|
219
201
|
- features/file_access.feature
|
220
202
|
- features/maintenance.feature
|
203
|
+
- features/mysql.feature
|
221
204
|
- features/project_version.feature
|
222
205
|
- features/support/env.rb
|
223
206
|
- features/utils.feature
|
@@ -225,20 +208,22 @@ files:
|
|
225
208
|
- lib/capistrano/dkdeploy/core.rb
|
226
209
|
- lib/dkdeploy.rb
|
227
210
|
- lib/dkdeploy/constants.rb
|
228
|
-
- lib/dkdeploy/copy.rb
|
229
211
|
- lib/dkdeploy/core/version.rb
|
230
212
|
- lib/dkdeploy/dsl.rb
|
231
213
|
- lib/dkdeploy/helpers/assets.rb
|
232
214
|
- lib/dkdeploy/helpers/common.rb
|
233
215
|
- lib/dkdeploy/helpers/db.rb
|
234
216
|
- lib/dkdeploy/helpers/file_system.rb
|
217
|
+
- lib/dkdeploy/helpers/mysql.rb
|
235
218
|
- lib/dkdeploy/i18n.rb
|
219
|
+
- lib/dkdeploy/interaction_handler/mysql.rb
|
236
220
|
- lib/dkdeploy/interaction_handler/password.rb
|
237
221
|
- lib/dkdeploy/rollback_manager.rb
|
222
|
+
- lib/dkdeploy/scm/copy.rake
|
223
|
+
- lib/dkdeploy/scm/copy.rb
|
238
224
|
- lib/dkdeploy/tasks/apache.rake
|
239
225
|
- lib/dkdeploy/tasks/assets.rake
|
240
226
|
- lib/dkdeploy/tasks/bower.rake
|
241
|
-
- lib/dkdeploy/tasks/copy.rake
|
242
227
|
- lib/dkdeploy/tasks/current_folder.rake
|
243
228
|
- lib/dkdeploy/tasks/db.rake
|
244
229
|
- lib/dkdeploy/tasks/deploy.rake
|
@@ -246,6 +231,7 @@ files:
|
|
246
231
|
- lib/dkdeploy/tasks/fail.rake
|
247
232
|
- lib/dkdeploy/tasks/file_access.rake
|
248
233
|
- lib/dkdeploy/tasks/maintenance.rake
|
234
|
+
- lib/dkdeploy/tasks/mysql.rake
|
249
235
|
- lib/dkdeploy/tasks/project_version.rake
|
250
236
|
- lib/dkdeploy/tasks/utils.rake
|
251
237
|
- spec/fixtures/application/Capfile
|
@@ -258,8 +244,7 @@ files:
|
|
258
244
|
- spec/fixtures/application/config/etc/apache2/conf/dev.htaccess.erb
|
259
245
|
- spec/fixtures/application/config/preseed/default_content.sql.gz
|
260
246
|
- spec/fixtures/application/config/preseed/default_structure.sql.gz
|
261
|
-
- spec/fixtures/application/config/preseed/
|
262
|
-
- spec/fixtures/application/config/preseed/uploads.tar.gz
|
247
|
+
- spec/fixtures/application/config/preseed/download.tar.gz
|
263
248
|
- spec/fixtures/application/htdocs/.hidden/.gitkeep
|
264
249
|
- spec/fixtures/application/htdocs/Gemfile
|
265
250
|
- spec/fixtures/application/htdocs/bower.json
|
@@ -277,27 +262,28 @@ files:
|
|
277
262
|
- spec/fixtures/capistrano/configuration/custom_compass_sources.rb
|
278
263
|
- spec/fixtures/capistrano/configuration/custom_file_access.rb
|
279
264
|
- spec/fixtures/capistrano/configuration/default_deployment_behaviour.rb
|
280
|
-
homepage: https://
|
265
|
+
homepage: https://github.com/dkdeploy/dkdeploy-core
|
281
266
|
licenses:
|
282
267
|
- MIT
|
283
268
|
metadata: {}
|
284
|
-
post_install_message:
|
269
|
+
post_install_message:
|
285
270
|
rdoc_options: []
|
286
271
|
require_paths:
|
287
272
|
- lib
|
288
273
|
required_ruby_version: !ruby/object:Gem::Requirement
|
289
274
|
requirements:
|
290
|
-
- - "
|
275
|
+
- - "~>"
|
291
276
|
- !ruby/object:Gem::Version
|
292
|
-
version: '
|
277
|
+
version: '2.2'
|
293
278
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
294
279
|
requirements:
|
295
280
|
- - ">="
|
296
281
|
- !ruby/object:Gem::Version
|
297
282
|
version: '0'
|
298
283
|
requirements: []
|
299
|
-
|
300
|
-
|
284
|
+
rubyforge_project:
|
285
|
+
rubygems_version: 2.6.14
|
286
|
+
signing_key:
|
301
287
|
specification_version: 4
|
302
288
|
summary: dkd basic deployment tasks and strategies
|
303
289
|
test_files:
|
@@ -311,6 +297,7 @@ test_files:
|
|
311
297
|
- features/error_handlers.feature
|
312
298
|
- features/file_access.feature
|
313
299
|
- features/maintenance.feature
|
300
|
+
- features/mysql.feature
|
314
301
|
- features/project_version.feature
|
315
302
|
- features/support/env.rb
|
316
303
|
- features/utils.feature
|
@@ -324,8 +311,7 @@ test_files:
|
|
324
311
|
- spec/fixtures/application/config/etc/apache2/conf/dev.htaccess.erb
|
325
312
|
- spec/fixtures/application/config/preseed/default_content.sql.gz
|
326
313
|
- spec/fixtures/application/config/preseed/default_structure.sql.gz
|
327
|
-
- spec/fixtures/application/config/preseed/
|
328
|
-
- spec/fixtures/application/config/preseed/uploads.tar.gz
|
314
|
+
- spec/fixtures/application/config/preseed/download.tar.gz
|
329
315
|
- spec/fixtures/application/htdocs/.hidden/.gitkeep
|
330
316
|
- spec/fixtures/application/htdocs/Gemfile
|
331
317
|
- spec/fixtures/application/htdocs/bower.json
|
data/lib/dkdeploy/copy.rb
DELETED
@@ -1,121 +0,0 @@
|
|
1
|
-
require 'tmpdir'
|
2
|
-
require 'capistrano/scm'
|
3
|
-
require 'capistrano/i18n'
|
4
|
-
require 'dkdeploy/i18n'
|
5
|
-
require 'dkdeploy/constants'
|
6
|
-
|
7
|
-
include Capistrano::DSL
|
8
|
-
|
9
|
-
module Dkdeploy
|
10
|
-
# Class for the capistrano copy
|
11
|
-
#
|
12
|
-
class Copy
|
13
|
-
include Dkdeploy::Constants
|
14
|
-
|
15
|
-
# Provide a wrapper for the SCM that loads a strategy for the user.
|
16
|
-
#
|
17
|
-
# @param [Rake] context The context in which the strategy should run
|
18
|
-
# @param [Module] strategy A module to include into the SCM instance. The
|
19
|
-
# module should provide the abstract methods of Capistrano::SCM
|
20
|
-
#
|
21
|
-
def initialize(context, strategy)
|
22
|
-
@context = context
|
23
|
-
singleton = class << self; self; end
|
24
|
-
singleton.send(:include, strategy)
|
25
|
-
end
|
26
|
-
|
27
|
-
# Default copy strategy
|
28
|
-
#
|
29
|
-
module DefaultStrategy
|
30
|
-
# Checks if the local source directory exists.
|
31
|
-
#
|
32
|
-
def check
|
33
|
-
# scope object for the processing in the block
|
34
|
-
me = self
|
35
|
-
run_locally do
|
36
|
-
unless Dir.exist? me.copy_source
|
37
|
-
fatal I18n.t('directory.not_exists', name: me.copy_source, scope: :dkdeploy)
|
38
|
-
exit 1
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
# Copies the source file structure to the server excluding the not wanted elements.
|
44
|
-
#
|
45
|
-
def release
|
46
|
-
build_source_archive
|
47
|
-
copy_archive_to_server
|
48
|
-
clean_up_temporary_sources
|
49
|
-
end
|
50
|
-
|
51
|
-
# Builds a tar archive in a temporary directory
|
52
|
-
# excluding files and folders matching the configured pattern.
|
53
|
-
#
|
54
|
-
def build_source_archive
|
55
|
-
# scope object for the processing in the block
|
56
|
-
me = self
|
57
|
-
run_locally do
|
58
|
-
info I18n.t('tasks.copy.archive.generate', scope: :dkdeploy)
|
59
|
-
|
60
|
-
# generate an exclude.txt file with the patterns to be excluded
|
61
|
-
File.open(me.local_exclude_path, 'w+') do |file|
|
62
|
-
me.copy_exclude.each do |pattern|
|
63
|
-
file.puts pattern
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
# build the tar archive excluding the patterns from exclude.txt
|
68
|
-
within me.copy_source do
|
69
|
-
execute :tar, '-X ' + me.local_exclude_path, '-cpzf', me.local_archive_path, '.'
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
# Copies the tar archive on the remote server
|
75
|
-
# extracting it to the configured directory.
|
76
|
-
#
|
77
|
-
def copy_archive_to_server # rubocop:disable Metrics/AbcSize
|
78
|
-
# scope object for the processing in the block
|
79
|
-
me = self
|
80
|
-
on release_roles :app do
|
81
|
-
info I18n.t('file.upload', file: 'archive', target: me.remote_tmp_dir, scope: :dkdeploy)
|
82
|
-
execute :mkdir, '-p', me.remote_tmp_dir
|
83
|
-
|
84
|
-
upload! me.local_archive_path, me.remote_tmp_dir
|
85
|
-
|
86
|
-
info I18n.t('directory.create', directory: release_path, scope: :dkdeploy)
|
87
|
-
execute :mkdir, '-p', release_path
|
88
|
-
|
89
|
-
within release_path do
|
90
|
-
info I18n.t('tasks.copy.archive.extract', target: release_path, scope: :dkdeploy)
|
91
|
-
execute :tar, '-xpzf', me.remote_archive_path
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
# Cleans up the local and remote temporary directories
|
97
|
-
#
|
98
|
-
def clean_up_temporary_sources
|
99
|
-
# scope object for the processing in the block
|
100
|
-
me = self
|
101
|
-
|
102
|
-
# remove the local temporary directory
|
103
|
-
run_locally do
|
104
|
-
info I18n.t('file.remove', path: me.local_tmp_dir, scope: :dkdeploy)
|
105
|
-
execute :rm, '-rf', me.local_tmp_dir
|
106
|
-
end
|
107
|
-
|
108
|
-
# removes the remote archive
|
109
|
-
on release_roles :app do
|
110
|
-
info I18n.t('file.remove', path: me.remote_archive_path, scope: :dkdeploy)
|
111
|
-
execute :rm, '-f', me.remote_archive_path
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
# Fetches the current revision message
|
116
|
-
def fetch_revision
|
117
|
-
I18n.t('log.revision_log_message', copy_source: fetch(:copy_source), time: Time.now, scope: :dkdeploy)
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require_relative '../copy'
|
2
|
-
|
3
|
-
include Capistrano::DSL
|
4
|
-
|
5
|
-
namespace :copy do
|
6
|
-
# Getter for copy strategy
|
7
|
-
#
|
8
|
-
def strategy
|
9
|
-
@strategy ||= Dkdeploy::Copy.new(self, fetch(:copy_strategy, Dkdeploy::Copy::DefaultStrategy))
|
10
|
-
end
|
11
|
-
|
12
|
-
desc 'Check if all configuration variables and copy sources exist'
|
13
|
-
task :check do
|
14
|
-
strategy.check
|
15
|
-
end
|
16
|
-
|
17
|
-
desc 'Upload the source repository to releases'
|
18
|
-
task :create_release do
|
19
|
-
strategy.release
|
20
|
-
end
|
21
|
-
|
22
|
-
desc 'Determine the revision that will be deployed'
|
23
|
-
task :set_current_revision do
|
24
|
-
set :current_revision, strategy.fetch_revision
|
25
|
-
end
|
26
|
-
end
|
Binary file
|
Binary file
|