capistrano 3.4.0 → 3.17.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.
Files changed (138) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +129 -0
  3. data/.github/issue_template.md +19 -0
  4. data/.github/pull_request_template.md +22 -0
  5. data/.github/release-drafter.yml +17 -0
  6. data/.github/workflows/push.yml +12 -0
  7. data/.gitignore +8 -5
  8. data/.rubocop.yml +62 -0
  9. data/CHANGELOG.md +1 -307
  10. data/CONTRIBUTING.md +63 -93
  11. data/DEVELOPMENT.md +127 -0
  12. data/Dangerfile +1 -0
  13. data/Gemfile +40 -3
  14. data/LICENSE.txt +1 -1
  15. data/README.md +127 -44
  16. data/RELEASING.md +17 -0
  17. data/Rakefile +13 -2
  18. data/UPGRADING-3.7.md +86 -0
  19. data/bin/cap +1 -1
  20. data/capistrano.gemspec +21 -24
  21. data/features/deploy.feature +35 -1
  22. data/features/doctor.feature +11 -0
  23. data/features/installation.feature +8 -3
  24. data/features/stage_failure.feature +9 -0
  25. data/features/step_definitions/assertions.rb +51 -18
  26. data/features/step_definitions/cap_commands.rb +9 -0
  27. data/features/step_definitions/setup.rb +53 -9
  28. data/features/subdirectory.feature +9 -0
  29. data/features/support/env.rb +5 -5
  30. data/features/support/remote_command_helpers.rb +12 -6
  31. data/features/support/vagrant_helpers.rb +17 -11
  32. data/lib/Capfile +1 -1
  33. data/lib/capistrano/all.rb +10 -10
  34. data/lib/capistrano/application.rb +47 -34
  35. data/lib/capistrano/configuration/empty_filter.rb +9 -0
  36. data/lib/capistrano/configuration/filter.rb +17 -47
  37. data/lib/capistrano/configuration/host_filter.rb +29 -0
  38. data/lib/capistrano/configuration/null_filter.rb +9 -0
  39. data/lib/capistrano/configuration/plugin_installer.rb +51 -0
  40. data/lib/capistrano/configuration/question.rb +31 -9
  41. data/lib/capistrano/configuration/role_filter.rb +29 -0
  42. data/lib/capistrano/configuration/scm_resolver.rb +149 -0
  43. data/lib/capistrano/configuration/server.rb +29 -23
  44. data/lib/capistrano/configuration/servers.rb +21 -14
  45. data/lib/capistrano/configuration/validated_variables.rb +110 -0
  46. data/lib/capistrano/configuration/variables.rb +112 -0
  47. data/lib/capistrano/configuration.rb +91 -44
  48. data/lib/capistrano/defaults.rb +26 -4
  49. data/lib/capistrano/deploy.rb +1 -1
  50. data/lib/capistrano/doctor/environment_doctor.rb +19 -0
  51. data/lib/capistrano/doctor/gems_doctor.rb +45 -0
  52. data/lib/capistrano/doctor/output_helpers.rb +79 -0
  53. data/lib/capistrano/doctor/servers_doctor.rb +105 -0
  54. data/lib/capistrano/doctor/variables_doctor.rb +74 -0
  55. data/lib/capistrano/doctor.rb +6 -0
  56. data/lib/capistrano/dotfile.rb +1 -2
  57. data/lib/capistrano/dsl/env.rb +9 -47
  58. data/lib/capistrano/dsl/paths.rb +11 -25
  59. data/lib/capistrano/dsl/stages.rb +14 -2
  60. data/lib/capistrano/dsl/task_enhancements.rb +7 -12
  61. data/lib/capistrano/dsl.rb +47 -16
  62. data/lib/capistrano/framework.rb +1 -1
  63. data/lib/capistrano/i18n.rb +32 -24
  64. data/lib/capistrano/immutable_task.rb +30 -0
  65. data/lib/capistrano/install.rb +1 -1
  66. data/lib/capistrano/plugin.rb +95 -0
  67. data/lib/capistrano/proc_helpers.rb +13 -0
  68. data/lib/capistrano/scm/git.rb +100 -0
  69. data/lib/capistrano/scm/hg.rb +55 -0
  70. data/lib/capistrano/scm/plugin.rb +13 -0
  71. data/lib/capistrano/scm/svn.rb +56 -0
  72. data/lib/capistrano/scm/tasks/git.rake +73 -0
  73. data/lib/capistrano/scm/tasks/hg.rake +53 -0
  74. data/lib/capistrano/scm/tasks/svn.rake +53 -0
  75. data/lib/capistrano/scm.rb +7 -20
  76. data/lib/capistrano/setup.rb +20 -6
  77. data/lib/capistrano/tasks/console.rake +4 -8
  78. data/lib/capistrano/tasks/deploy.rake +105 -73
  79. data/lib/capistrano/tasks/doctor.rake +24 -0
  80. data/lib/capistrano/tasks/framework.rake +13 -14
  81. data/lib/capistrano/tasks/install.rake +14 -15
  82. data/lib/capistrano/templates/Capfile +21 -10
  83. data/lib/capistrano/templates/deploy.rb.erb +17 -26
  84. data/lib/capistrano/templates/stage.rb.erb +9 -9
  85. data/lib/capistrano/upload_task.rb +1 -1
  86. data/lib/capistrano/version.rb +1 -1
  87. data/lib/capistrano/version_validator.rb +5 -10
  88. data/spec/integration/dsl_spec.rb +289 -240
  89. data/spec/integration_spec_helper.rb +3 -5
  90. data/spec/lib/capistrano/application_spec.rb +23 -39
  91. data/spec/lib/capistrano/configuration/empty_filter_spec.rb +17 -0
  92. data/spec/lib/capistrano/configuration/filter_spec.rb +83 -85
  93. data/spec/lib/capistrano/configuration/host_filter_spec.rb +71 -0
  94. data/spec/lib/capistrano/configuration/null_filter_spec.rb +17 -0
  95. data/spec/lib/capistrano/configuration/plugin_installer_spec.rb +98 -0
  96. data/spec/lib/capistrano/configuration/question_spec.rb +58 -26
  97. data/spec/lib/capistrano/configuration/role_filter_spec.rb +80 -0
  98. data/spec/lib/capistrano/configuration/scm_resolver_spec.rb +55 -0
  99. data/spec/lib/capistrano/configuration/server_spec.rb +106 -113
  100. data/spec/lib/capistrano/configuration/servers_spec.rb +129 -145
  101. data/spec/lib/capistrano/configuration_spec.rb +224 -63
  102. data/spec/lib/capistrano/doctor/environment_doctor_spec.rb +44 -0
  103. data/spec/lib/capistrano/doctor/gems_doctor_spec.rb +67 -0
  104. data/spec/lib/capistrano/doctor/output_helpers_spec.rb +47 -0
  105. data/spec/lib/capistrano/doctor/servers_doctor_spec.rb +86 -0
  106. data/spec/lib/capistrano/doctor/variables_doctor_spec.rb +89 -0
  107. data/spec/lib/capistrano/dsl/paths_spec.rb +97 -59
  108. data/spec/lib/capistrano/dsl/task_enhancements_spec.rb +57 -37
  109. data/spec/lib/capistrano/dsl_spec.rb +84 -11
  110. data/spec/lib/capistrano/immutable_task_spec.rb +31 -0
  111. data/spec/lib/capistrano/plugin_spec.rb +84 -0
  112. data/spec/lib/capistrano/scm/git_spec.rb +184 -0
  113. data/spec/lib/capistrano/scm/hg_spec.rb +109 -0
  114. data/spec/lib/capistrano/scm/svn_spec.rb +137 -0
  115. data/spec/lib/capistrano/scm_spec.rb +7 -8
  116. data/spec/lib/capistrano/upload_task_spec.rb +7 -7
  117. data/spec/lib/capistrano/version_validator_spec.rb +61 -46
  118. data/spec/lib/capistrano_spec.rb +2 -3
  119. data/spec/spec_helper.rb +21 -8
  120. data/spec/support/Vagrantfile +9 -10
  121. data/spec/support/tasks/database.rake +3 -3
  122. data/spec/support/tasks/fail.rake +4 -3
  123. data/spec/support/tasks/failed.rake +2 -2
  124. data/spec/support/tasks/plugin.rake +6 -0
  125. data/spec/support/tasks/root.rake +4 -4
  126. data/spec/support/test_app.rb +64 -39
  127. metadata +100 -55
  128. data/.travis.yml +0 -13
  129. data/features/remote_file_task.feature +0 -14
  130. data/lib/capistrano/git.rb +0 -46
  131. data/lib/capistrano/hg.rb +0 -43
  132. data/lib/capistrano/svn.rb +0 -38
  133. data/lib/capistrano/tasks/git.rake +0 -81
  134. data/lib/capistrano/tasks/hg.rake +0 -52
  135. data/lib/capistrano/tasks/svn.rake +0 -52
  136. data/spec/lib/capistrano/git_spec.rb +0 -81
  137. data/spec/lib/capistrano/hg_spec.rb +0 -81
  138. data/spec/lib/capistrano/svn_spec.rb +0 -79
metadata CHANGED
@@ -1,44 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.0
4
+ version: 3.17.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tom Clements
8
8
  - Lee Hambley
9
- autorequire:
9
+ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-02 00:00:00.000000000 Z
12
+ date: 2022-08-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: sshkit
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '1.3'
21
- type: :runtime
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - "~>"
26
- - !ruby/object:Gem::Version
27
- version: '1.3'
28
- - !ruby/object:Gem::Dependency
29
- name: rake
15
+ name: airbrussh
30
16
  requirement: !ruby/object:Gem::Requirement
31
17
  requirements:
32
18
  - - ">="
33
19
  - !ruby/object:Gem::Version
34
- version: 10.0.0
20
+ version: 1.0.0
35
21
  type: :runtime
36
22
  prerelease: false
37
23
  version_requirements: !ruby/object:Gem::Requirement
38
24
  requirements:
39
25
  - - ">="
40
26
  - !ruby/object:Gem::Version
41
- version: 10.0.0
27
+ version: 1.0.0
42
28
  - !ruby/object:Gem::Dependency
43
29
  name: i18n
44
30
  requirement: !ruby/object:Gem::Requirement
@@ -54,33 +40,33 @@ dependencies:
54
40
  - !ruby/object:Gem::Version
55
41
  version: '0'
56
42
  - !ruby/object:Gem::Dependency
57
- name: rspec
43
+ name: rake
58
44
  requirement: !ruby/object:Gem::Requirement
59
45
  requirements:
60
46
  - - ">="
61
47
  - !ruby/object:Gem::Version
62
- version: '0'
63
- type: :development
48
+ version: 10.0.0
49
+ type: :runtime
64
50
  prerelease: false
65
51
  version_requirements: !ruby/object:Gem::Requirement
66
52
  requirements:
67
53
  - - ">="
68
54
  - !ruby/object:Gem::Version
69
- version: '0'
55
+ version: 10.0.0
70
56
  - !ruby/object:Gem::Dependency
71
- name: mocha
57
+ name: sshkit
72
58
  requirement: !ruby/object:Gem::Requirement
73
59
  requirements:
74
60
  - - ">="
75
61
  - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :development
62
+ version: 1.9.0
63
+ type: :runtime
78
64
  prerelease: false
79
65
  version_requirements: !ruby/object:Gem::Requirement
80
66
  requirements:
81
67
  - - ">="
82
68
  - !ruby/object:Gem::Version
83
- version: '0'
69
+ version: 1.9.0
84
70
  description: Capistrano is a utility and framework for executing commands in parallel
85
71
  on multiple remote machines, via SSH.
86
72
  email:
@@ -92,26 +78,37 @@ executables:
92
78
  extensions: []
93
79
  extra_rdoc_files: []
94
80
  files:
81
+ - ".circleci/config.yml"
82
+ - ".github/issue_template.md"
83
+ - ".github/pull_request_template.md"
84
+ - ".github/release-drafter.yml"
85
+ - ".github/workflows/push.yml"
95
86
  - ".gitignore"
96
- - ".travis.yml"
87
+ - ".rubocop.yml"
97
88
  - CHANGELOG.md
98
89
  - CONTRIBUTING.md
90
+ - DEVELOPMENT.md
91
+ - Dangerfile
99
92
  - Gemfile
100
93
  - LICENSE.txt
101
94
  - README.md
95
+ - RELEASING.md
102
96
  - Rakefile
97
+ - UPGRADING-3.7.md
103
98
  - bin/cap
104
99
  - bin/capify
105
100
  - capistrano.gemspec
106
101
  - features/configuration.feature
107
102
  - features/deploy.feature
108
103
  - features/deploy_failure.feature
104
+ - features/doctor.feature
109
105
  - features/installation.feature
110
- - features/remote_file_task.feature
111
106
  - features/sshconnect.feature
107
+ - features/stage_failure.feature
112
108
  - features/step_definitions/assertions.rb
113
109
  - features/step_definitions/cap_commands.rb
114
110
  - features/step_definitions/setup.rb
111
+ - features/subdirectory.feature
115
112
  - features/support/env.rb
116
113
  - features/support/remote_command_helpers.rb
117
114
  - features/support/vagrant_helpers.rb
@@ -120,13 +117,27 @@ files:
120
117
  - lib/capistrano/all.rb
121
118
  - lib/capistrano/application.rb
122
119
  - lib/capistrano/configuration.rb
120
+ - lib/capistrano/configuration/empty_filter.rb
123
121
  - lib/capistrano/configuration/filter.rb
122
+ - lib/capistrano/configuration/host_filter.rb
123
+ - lib/capistrano/configuration/null_filter.rb
124
+ - lib/capistrano/configuration/plugin_installer.rb
124
125
  - lib/capistrano/configuration/question.rb
126
+ - lib/capistrano/configuration/role_filter.rb
127
+ - lib/capistrano/configuration/scm_resolver.rb
125
128
  - lib/capistrano/configuration/server.rb
126
129
  - lib/capistrano/configuration/servers.rb
130
+ - lib/capistrano/configuration/validated_variables.rb
131
+ - lib/capistrano/configuration/variables.rb
127
132
  - lib/capistrano/console.rb
128
133
  - lib/capistrano/defaults.rb
129
134
  - lib/capistrano/deploy.rb
135
+ - lib/capistrano/doctor.rb
136
+ - lib/capistrano/doctor/environment_doctor.rb
137
+ - lib/capistrano/doctor/gems_doctor.rb
138
+ - lib/capistrano/doctor/output_helpers.rb
139
+ - lib/capistrano/doctor/servers_doctor.rb
140
+ - lib/capistrano/doctor/variables_doctor.rb
130
141
  - lib/capistrano/dotfile.rb
131
142
  - lib/capistrano/dsl.rb
132
143
  - lib/capistrano/dsl/env.rb
@@ -134,20 +145,25 @@ files:
134
145
  - lib/capistrano/dsl/stages.rb
135
146
  - lib/capistrano/dsl/task_enhancements.rb
136
147
  - lib/capistrano/framework.rb
137
- - lib/capistrano/git.rb
138
- - lib/capistrano/hg.rb
139
148
  - lib/capistrano/i18n.rb
149
+ - lib/capistrano/immutable_task.rb
140
150
  - lib/capistrano/install.rb
151
+ - lib/capistrano/plugin.rb
152
+ - lib/capistrano/proc_helpers.rb
141
153
  - lib/capistrano/scm.rb
154
+ - lib/capistrano/scm/git.rb
155
+ - lib/capistrano/scm/hg.rb
156
+ - lib/capistrano/scm/plugin.rb
157
+ - lib/capistrano/scm/svn.rb
158
+ - lib/capistrano/scm/tasks/git.rake
159
+ - lib/capistrano/scm/tasks/hg.rake
160
+ - lib/capistrano/scm/tasks/svn.rake
142
161
  - lib/capistrano/setup.rb
143
- - lib/capistrano/svn.rb
144
162
  - lib/capistrano/tasks/console.rake
145
163
  - lib/capistrano/tasks/deploy.rake
164
+ - lib/capistrano/tasks/doctor.rake
146
165
  - lib/capistrano/tasks/framework.rake
147
- - lib/capistrano/tasks/git.rake
148
- - lib/capistrano/tasks/hg.rake
149
166
  - lib/capistrano/tasks/install.rake
150
- - lib/capistrano/tasks/svn.rake
151
167
  - lib/capistrano/templates/Capfile
152
168
  - lib/capistrano/templates/deploy.rb.erb
153
169
  - lib/capistrano/templates/stage.rb.erb
@@ -157,18 +173,31 @@ files:
157
173
  - spec/integration/dsl_spec.rb
158
174
  - spec/integration_spec_helper.rb
159
175
  - spec/lib/capistrano/application_spec.rb
176
+ - spec/lib/capistrano/configuration/empty_filter_spec.rb
160
177
  - spec/lib/capistrano/configuration/filter_spec.rb
178
+ - spec/lib/capistrano/configuration/host_filter_spec.rb
179
+ - spec/lib/capistrano/configuration/null_filter_spec.rb
180
+ - spec/lib/capistrano/configuration/plugin_installer_spec.rb
161
181
  - spec/lib/capistrano/configuration/question_spec.rb
182
+ - spec/lib/capistrano/configuration/role_filter_spec.rb
183
+ - spec/lib/capistrano/configuration/scm_resolver_spec.rb
162
184
  - spec/lib/capistrano/configuration/server_spec.rb
163
185
  - spec/lib/capistrano/configuration/servers_spec.rb
164
186
  - spec/lib/capistrano/configuration_spec.rb
187
+ - spec/lib/capistrano/doctor/environment_doctor_spec.rb
188
+ - spec/lib/capistrano/doctor/gems_doctor_spec.rb
189
+ - spec/lib/capistrano/doctor/output_helpers_spec.rb
190
+ - spec/lib/capistrano/doctor/servers_doctor_spec.rb
191
+ - spec/lib/capistrano/doctor/variables_doctor_spec.rb
165
192
  - spec/lib/capistrano/dsl/paths_spec.rb
166
193
  - spec/lib/capistrano/dsl/task_enhancements_spec.rb
167
194
  - spec/lib/capistrano/dsl_spec.rb
168
- - spec/lib/capistrano/git_spec.rb
169
- - spec/lib/capistrano/hg_spec.rb
195
+ - spec/lib/capistrano/immutable_task_spec.rb
196
+ - spec/lib/capistrano/plugin_spec.rb
197
+ - spec/lib/capistrano/scm/git_spec.rb
198
+ - spec/lib/capistrano/scm/hg_spec.rb
199
+ - spec/lib/capistrano/scm/svn_spec.rb
170
200
  - spec/lib/capistrano/scm_spec.rb
171
- - spec/lib/capistrano/svn_spec.rb
172
201
  - spec/lib/capistrano/upload_task_spec.rb
173
202
  - spec/lib/capistrano/version_validator_spec.rb
174
203
  - spec/lib/capistrano_spec.rb
@@ -179,18 +208,19 @@ files:
179
208
  - spec/support/tasks/database.rake
180
209
  - spec/support/tasks/fail.rake
181
210
  - spec/support/tasks/failed.rake
211
+ - spec/support/tasks/plugin.rake
182
212
  - spec/support/tasks/root.rake
183
213
  - spec/support/test_app.rb
184
- homepage: http://capistranorb.com/
214
+ homepage: https://capistranorb.com/
185
215
  licenses:
186
216
  - MIT
187
- metadata: {}
188
- post_install_message: |
189
- Capistrano 3.1 has some breaking changes. Please check the CHANGELOG: http://goo.gl/SxB0lr
190
-
191
- If you're upgrading Capistrano from 2.x, we recommend to read the upgrade guide: http://goo.gl/4536kB
192
-
193
- The `deploy:restart` hook for passenger applications is now in a separate gem called capistrano-passenger. Just add it to your Gemfile and require it in your Capfile.
217
+ metadata:
218
+ bug_tracker_uri: https://github.com/capistrano/capistrano/issues
219
+ changelog_uri: https://github.com/capistrano/capistrano/releases
220
+ source_code_uri: https://github.com/capistrano/capistrano
221
+ homepage_uri: https://capistranorb.com/
222
+ documentation_uri: https://capistranorb.com/
223
+ post_install_message:
194
224
  rdoc_options: []
195
225
  require_paths:
196
226
  - lib
@@ -198,46 +228,60 @@ required_ruby_version: !ruby/object:Gem::Requirement
198
228
  requirements:
199
229
  - - ">="
200
230
  - !ruby/object:Gem::Version
201
- version: 1.9.3
231
+ version: '2.0'
202
232
  required_rubygems_version: !ruby/object:Gem::Requirement
203
233
  requirements:
204
234
  - - ">="
205
235
  - !ruby/object:Gem::Version
206
236
  version: '0'
207
237
  requirements: []
208
- rubyforge_project:
209
- rubygems_version: 2.4.3
210
- signing_key:
238
+ rubygems_version: 3.3.18
239
+ signing_key:
211
240
  specification_version: 4
212
241
  summary: Capistrano - Welcome to easy deployment with Ruby over SSH
213
242
  test_files:
214
243
  - features/configuration.feature
215
244
  - features/deploy.feature
216
245
  - features/deploy_failure.feature
246
+ - features/doctor.feature
217
247
  - features/installation.feature
218
- - features/remote_file_task.feature
219
248
  - features/sshconnect.feature
249
+ - features/stage_failure.feature
220
250
  - features/step_definitions/assertions.rb
221
251
  - features/step_definitions/cap_commands.rb
222
252
  - features/step_definitions/setup.rb
253
+ - features/subdirectory.feature
223
254
  - features/support/env.rb
224
255
  - features/support/remote_command_helpers.rb
225
256
  - features/support/vagrant_helpers.rb
226
257
  - spec/integration/dsl_spec.rb
227
258
  - spec/integration_spec_helper.rb
228
259
  - spec/lib/capistrano/application_spec.rb
260
+ - spec/lib/capistrano/configuration/empty_filter_spec.rb
229
261
  - spec/lib/capistrano/configuration/filter_spec.rb
262
+ - spec/lib/capistrano/configuration/host_filter_spec.rb
263
+ - spec/lib/capistrano/configuration/null_filter_spec.rb
264
+ - spec/lib/capistrano/configuration/plugin_installer_spec.rb
230
265
  - spec/lib/capistrano/configuration/question_spec.rb
266
+ - spec/lib/capistrano/configuration/role_filter_spec.rb
267
+ - spec/lib/capistrano/configuration/scm_resolver_spec.rb
231
268
  - spec/lib/capistrano/configuration/server_spec.rb
232
269
  - spec/lib/capistrano/configuration/servers_spec.rb
233
270
  - spec/lib/capistrano/configuration_spec.rb
271
+ - spec/lib/capistrano/doctor/environment_doctor_spec.rb
272
+ - spec/lib/capistrano/doctor/gems_doctor_spec.rb
273
+ - spec/lib/capistrano/doctor/output_helpers_spec.rb
274
+ - spec/lib/capistrano/doctor/servers_doctor_spec.rb
275
+ - spec/lib/capistrano/doctor/variables_doctor_spec.rb
234
276
  - spec/lib/capistrano/dsl/paths_spec.rb
235
277
  - spec/lib/capistrano/dsl/task_enhancements_spec.rb
236
278
  - spec/lib/capistrano/dsl_spec.rb
237
- - spec/lib/capistrano/git_spec.rb
238
- - spec/lib/capistrano/hg_spec.rb
279
+ - spec/lib/capistrano/immutable_task_spec.rb
280
+ - spec/lib/capistrano/plugin_spec.rb
281
+ - spec/lib/capistrano/scm/git_spec.rb
282
+ - spec/lib/capistrano/scm/hg_spec.rb
283
+ - spec/lib/capistrano/scm/svn_spec.rb
239
284
  - spec/lib/capistrano/scm_spec.rb
240
- - spec/lib/capistrano/svn_spec.rb
241
285
  - spec/lib/capistrano/upload_task_spec.rb
242
286
  - spec/lib/capistrano/version_validator_spec.rb
243
287
  - spec/lib/capistrano_spec.rb
@@ -248,5 +292,6 @@ test_files:
248
292
  - spec/support/tasks/database.rake
249
293
  - spec/support/tasks/fail.rake
250
294
  - spec/support/tasks/failed.rake
295
+ - spec/support/tasks/plugin.rake
251
296
  - spec/support/tasks/root.rake
252
297
  - spec/support/test_app.rb
data/.travis.yml DELETED
@@ -1,13 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.1.0
4
- - 2.0.0
5
- - 1.9.3
6
- - rbx-2
7
- script: bundle exec rake spec
8
- install: bundle install --jobs=1
9
- cache: bundler
10
- branches:
11
- except:
12
- - legacy-v2
13
- sudo: false
@@ -1,14 +0,0 @@
1
- Feature: Remote file task
2
-
3
- Background:
4
- Given a test app with the default configuration
5
- And a custom task to generate a file
6
- And servers with the roles app and web
7
-
8
- Scenario: Where the file does not exist
9
- When I run cap "deploy:check:linked_files"
10
- Then it creates the file with the remote_task prerequisite
11
-
12
- Scenario: Where the file already exists
13
- When I run cap "deploy:check:linked_files"
14
- Then it will not recreate the file
@@ -1,46 +0,0 @@
1
- load File.expand_path("../tasks/git.rake", __FILE__)
2
-
3
- require 'capistrano/scm'
4
-
5
- class Capistrano::Git < Capistrano::SCM
6
-
7
- # execute git with argument in the context
8
- #
9
- def git(*args)
10
- args.unshift :git
11
- context.execute *args
12
- end
13
-
14
- # The Capistrano default strategy for git. You should want to use this.
15
- module DefaultStrategy
16
- def test
17
- test! " [ -f #{repo_path}/HEAD ] "
18
- end
19
-
20
- def check
21
- git :'ls-remote --heads', repo_url
22
- end
23
-
24
- def clone
25
- git :clone, '--mirror', repo_url, repo_path
26
- end
27
-
28
- def update
29
- git :remote, :update
30
- end
31
-
32
- def release
33
- if tree = fetch(:repo_tree)
34
- tree = tree.slice %r#^/?(.*?)/?$#, 1
35
- components = tree.split('/').size
36
- git :archive, fetch(:branch), tree, "| tar -x --strip-components #{components} -f - -C", release_path
37
- else
38
- git :archive, fetch(:branch), '| tar -x -f - -C', release_path
39
- end
40
- end
41
-
42
- def fetch_revision
43
- context.capture(:git, "rev-list --max-count=1 --abbrev-commit #{fetch(:branch)}")
44
- end
45
- end
46
- end
data/lib/capistrano/hg.rb DELETED
@@ -1,43 +0,0 @@
1
- load File.expand_path("../tasks/hg.rake", __FILE__)
2
-
3
- require 'capistrano/scm'
4
-
5
- class Capistrano::Hg < Capistrano::SCM
6
- # execute hg in context with arguments
7
- def hg(*args)
8
- args.unshift(:hg)
9
- context.execute *args
10
- end
11
-
12
- module DefaultStrategy
13
- def test
14
- test! " [ -d #{repo_path}/.hg ] "
15
- end
16
-
17
- def check
18
- hg "id", repo_url
19
- end
20
-
21
- def clone
22
- hg "clone", "--noupdate", repo_url, repo_path
23
- end
24
-
25
- def update
26
- hg "pull"
27
- end
28
-
29
- def release
30
- if tree = fetch(:repo_tree)
31
- tree = tree.slice %r#^/?(.*?)/?$#, 1
32
- components = tree.split('/').size
33
- hg "archive --type tgz -p . -I", tree, "--rev", fetch(:branch), "| tar -x --strip-components #{components} -f - -C", release_path
34
- else
35
- hg "archive", release_path, "--rev", fetch(:branch)
36
- end
37
- end
38
-
39
- def fetch_revision
40
- context.capture(:hg, "log --rev #{fetch(:branch)} --template \"{node}\n\"")
41
- end
42
- end
43
- end
@@ -1,38 +0,0 @@
1
- load File.expand_path("../tasks/svn.rake", __FILE__)
2
-
3
- require 'capistrano/scm'
4
-
5
- class Capistrano::Svn < Capistrano::SCM
6
-
7
- # execute svn in context with arguments
8
- def svn(*args)
9
- args.unshift(:svn)
10
- context.execute *args
11
- end
12
-
13
- module DefaultStrategy
14
- def test
15
- test! " [ -d #{repo_path}/.svn ] "
16
- end
17
-
18
- def check
19
- test! :svn, :info, repo_url
20
- end
21
-
22
- def clone
23
- svn :checkout, repo_url, repo_path
24
- end
25
-
26
- def update
27
- svn :update
28
- end
29
-
30
- def release
31
- svn :export, '--force', '.', release_path
32
- end
33
-
34
- def fetch_revision
35
- context.capture(:svnversion, repo_path)
36
- end
37
- end
38
- end
@@ -1,81 +0,0 @@
1
- namespace :git do
2
-
3
- def strategy
4
- @strategy ||= Capistrano::Git.new(self, fetch(:git_strategy, Capistrano::Git::DefaultStrategy))
5
- end
6
-
7
- set :git_environmental_variables, ->() {
8
- {
9
- git_askpass: "/bin/echo",
10
- git_ssh: "#{fetch(:tmp_dir)}/#{fetch(:application)}/git-ssh.sh"
11
- }
12
- }
13
-
14
- desc 'Upload the git wrapper script, this script guarantees that we can script git without getting an interactive prompt'
15
- task :wrapper do
16
- on release_roles :all do
17
- execute :mkdir, "-p", "#{fetch(:tmp_dir)}/#{fetch(:application)}/"
18
- upload! StringIO.new("#!/bin/sh -e\nexec /usr/bin/ssh -o PasswordAuthentication=no -o StrictHostKeyChecking=no \"$@\"\n"), "#{fetch(:tmp_dir)}/#{fetch(:application)}/git-ssh.sh"
19
- execute :chmod, "+x", "#{fetch(:tmp_dir)}/#{fetch(:application)}/git-ssh.sh"
20
- end
21
- end
22
-
23
- desc 'Check that the repository is reachable'
24
- task check: :'git:wrapper' do
25
- fetch(:branch)
26
- on release_roles :all do
27
- with fetch(:git_environmental_variables) do
28
- strategy.check
29
- end
30
- end
31
- end
32
-
33
- desc 'Clone the repo to the cache'
34
- task clone: :'git:wrapper' do
35
- on release_roles :all do
36
- if strategy.test
37
- info t(:mirror_exists, at: repo_path)
38
- else
39
- within deploy_path do
40
- with fetch(:git_environmental_variables) do
41
- strategy.clone
42
- end
43
- end
44
- end
45
- end
46
- end
47
-
48
- desc 'Update the repo mirror to reflect the origin state'
49
- task update: :'git:clone' do
50
- on release_roles :all do
51
- within repo_path do
52
- with fetch(:git_environmental_variables) do
53
- strategy.update
54
- end
55
- end
56
- end
57
- end
58
-
59
- desc 'Copy repo to releases'
60
- task create_release: :'git:update' do
61
- on release_roles :all do
62
- with fetch(:git_environmental_variables) do
63
- within repo_path do
64
- execute :mkdir, '-p', release_path
65
- strategy.release
66
- end
67
- end
68
- end
69
- end
70
-
71
- desc 'Determine the revision that will be deployed'
72
- task :set_current_revision do
73
- on release_roles :all do
74
- within repo_path do
75
- with fetch(:git_environmental_variables) do
76
- set :current_revision, strategy.fetch_revision
77
- end
78
- end
79
- end
80
- end
81
- end
@@ -1,52 +0,0 @@
1
- namespace :hg do
2
- def strategy
3
- @strategy ||= Capistrano::Hg.new(self, fetch(:hg_strategy, Capistrano::Hg::DefaultStrategy))
4
- end
5
-
6
- desc 'Check that the repo is reachable'
7
- task :check do
8
- on release_roles :all do
9
- strategy.check
10
- end
11
- end
12
-
13
- desc 'Clone the repo to the cache'
14
- task :clone do
15
- on release_roles :all do
16
- if strategy.test
17
- info t(:mirror_exists, at: repo_path)
18
- else
19
- within deploy_path do
20
- strategy.clone
21
- end
22
- end
23
- end
24
- end
25
-
26
- desc 'Pull changes from the remote repo'
27
- task :update => :'hg:clone' do
28
- on release_roles :all do
29
- within repo_path do
30
- strategy.update
31
- end
32
- end
33
- end
34
-
35
- desc 'Copy repo to releases'
36
- task :create_release => :'hg:update' do
37
- on release_roles :all do
38
- within repo_path do
39
- strategy.release
40
- end
41
- end
42
- end
43
-
44
- desc 'Determine the revision that will be deployed'
45
- task :set_current_revision do
46
- on release_roles :all do
47
- within repo_path do
48
- set :current_revision, strategy.fetch_revision
49
- end
50
- end
51
- end
52
- end
@@ -1,52 +0,0 @@
1
- namespace :svn do
2
- def strategy
3
- @strategy ||= Capistrano::Svn.new(self, fetch(:svn_strategy, Capistrano::Svn::DefaultStrategy))
4
- end
5
-
6
- desc 'Check that the repo is reachable'
7
- task :check do
8
- on release_roles :all do
9
- strategy.check
10
- end
11
- end
12
-
13
- desc 'Clone the repo to the cache'
14
- task :clone do
15
- on release_roles :all do
16
- if strategy.test
17
- info t(:mirror_exists, at: repo_path)
18
- else
19
- within deploy_path do
20
- strategy.clone
21
- end
22
- end
23
- end
24
- end
25
-
26
- desc 'Pull changes from the remote repo'
27
- task :update => :'svn:clone' do
28
- on release_roles :all do
29
- within repo_path do
30
- strategy.update
31
- end
32
- end
33
- end
34
-
35
- desc 'Copy repo to releases'
36
- task :create_release => :'svn:update' do
37
- on release_roles :all do
38
- within repo_path do
39
- strategy.release
40
- end
41
- end
42
- end
43
-
44
- desc 'Determine the revision that will be deployed'
45
- task :set_current_revision do
46
- on release_roles :all do
47
- within repo_path do
48
- set :current_revision, strategy.fetch_revision
49
- end
50
- end
51
- end
52
- end