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.
Files changed (51) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +9 -0
  3. data/.travis.yml +13 -0
  4. data/CHANGELOG.md +38 -0
  5. data/CONTRIBUTORS.md +2 -0
  6. data/LICENSE +1 -1
  7. data/README.md +8 -5
  8. data/Vagrantfile +3 -10
  9. data/assets/dkdeploy-logo.png +0 -0
  10. data/config/vm/cookbooks/dkdeploy-core/recipes/default.rb +13 -1
  11. data/config/vm/cookbooks/dkdeploy-core/templates/my_extra_settings.erb +6 -0
  12. data/dkdeploy-core.gemspec +11 -12
  13. data/features/assets.feature +24 -26
  14. data/features/db.feature +4 -0
  15. data/features/mysql.feature +27 -0
  16. data/features/support/env.rb +1 -1
  17. data/lib/capistrano/dkdeploy/core.rb +11 -22
  18. data/lib/dkdeploy/constants.rb +5 -73
  19. data/lib/dkdeploy/core/version.rb +2 -2
  20. data/lib/dkdeploy/dsl.rb +1 -1
  21. data/lib/dkdeploy/helpers/assets.rb +0 -1
  22. data/lib/dkdeploy/helpers/db.rb +1 -1
  23. data/lib/dkdeploy/helpers/mysql.rb +17 -0
  24. data/lib/dkdeploy/i18n.rb +6 -0
  25. data/lib/dkdeploy/interaction_handler/mysql.rb +38 -0
  26. data/lib/dkdeploy/interaction_handler/password.rb +3 -2
  27. data/lib/dkdeploy/scm/copy.rake +76 -0
  28. data/lib/dkdeploy/scm/copy.rb +85 -0
  29. data/lib/dkdeploy/tasks/apache.rake +0 -1
  30. data/lib/dkdeploy/tasks/assets.rake +0 -1
  31. data/lib/dkdeploy/tasks/bower.rake +0 -1
  32. data/lib/dkdeploy/tasks/db.rake +20 -28
  33. data/lib/dkdeploy/tasks/deploy.rake +1 -11
  34. data/lib/dkdeploy/tasks/enhanced_symlinks.rake +3 -3
  35. data/lib/dkdeploy/tasks/file_access.rake +8 -9
  36. data/lib/dkdeploy/tasks/maintenance.rake +0 -1
  37. data/lib/dkdeploy/tasks/mysql.rake +50 -0
  38. data/lib/dkdeploy/tasks/project_version.rake +0 -1
  39. data/lib/dkdeploy/tasks/utils.rake +6 -2
  40. data/spec/fixtures/application/Gemfile +1 -1
  41. data/spec/fixtures/application/config/deploy/dev.rb +6 -3
  42. data/spec/fixtures/application/config/deploy.rb +42 -5
  43. data/spec/fixtures/application/config/preseed/default_content.sql.gz +0 -0
  44. data/spec/fixtures/application/config/preseed/download.tar.gz +0 -0
  45. data/spec/fixtures/capistrano/configuration/add_output_after_create_symlink.rb +1 -2
  46. data/spec/fixtures/capistrano/configuration/custom_compass_sources.rb +2 -2
  47. metadata +41 -55
  48. data/lib/dkdeploy/copy.rb +0 -121
  49. data/lib/dkdeploy/tasks/copy.rake +0 -26
  50. data/spec/fixtures/application/config/preseed/fileadmin.tar.gz +0 -0
  51. 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(web app backend), primary: true
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(fileadmin uploads)
9
- set :asset_default_content, %w(fileadmin uploads)
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(fileadmin uploads)
15
+ set :asset_default_content, %w[download]
17
16
  set :asset_exclude_file, 'config/assets_exclude_file.txt'
18
- set :asset_folders, %w(fileadmin uploads)
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
@@ -1,7 +1,6 @@
1
1
 
2
2
  after 'deploy:symlink:release', '--dummy-task-name' do
3
3
  run_locally do
4
- # rubocop:disable UnneededPercentQ
5
- info %q(Task 'deploy:symlink:release' executed)
4
+ info "Task 'deploy:symlink:release' executed"
6
5
  end
7
6
  end
@@ -1,4 +1,4 @@
1
- set :compass_sources, %w(
1
+ set :compass_sources, %w[
2
2
  htdocs/stylesheets/test1
3
3
  htdocs/stylesheets/test2
4
- )
4
+ ]
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: 8.0.2
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
- - Johannes Goslar
12
- - Luka Lüdicke
13
- autorequire:
9
+ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
- date: 2020-08-21 00:00:00.000000000 Z
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: 1.12.5
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: 1.12.5
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: '11.2'
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: '11.2'
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.4'
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.4'
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: '0.40'
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: '0.40'
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.3
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.3
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: '1.0'
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: '1.0'
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.5.0
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.5.0
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/fileadmin.tar.gz
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://redmine.dkd.de/projects/dkdeploy/wiki
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: '0'
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
- rubygems_version: 3.1.4
300
- signing_key:
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/fileadmin.tar.gz
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