bard 2.0.0.beta → 2.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 (174) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +6 -1
  3. data/CLAUDE.md +76 -0
  4. data/MIGRATION_GUIDE.md +24 -9
  5. data/PLUGINS.md +99 -0
  6. data/README.md +14 -6
  7. data/Rakefile +3 -1
  8. data/bard.gemspec +2 -1
  9. data/cucumber.yml +1 -0
  10. data/features/ci.feature +63 -0
  11. data/features/data.feature +13 -0
  12. data/features/deploy.feature +14 -0
  13. data/features/deploy_git_workflow.feature +89 -0
  14. data/features/run.feature +14 -0
  15. data/features/step_definitions/bard_steps.rb +136 -0
  16. data/features/support/bard-coverage +16 -0
  17. data/features/support/env.rb +14 -39
  18. data/features/support/test_server.rb +216 -0
  19. data/lib/bard/cli.rb +14 -31
  20. data/lib/bard/command.rb +10 -69
  21. data/lib/bard/config.rb +40 -183
  22. data/lib/bard/copy.rb +28 -103
  23. data/lib/bard/plugins/data.rb +56 -0
  24. data/lib/bard/{ci → plugins/deploy/ci}/github_actions.rb +3 -4
  25. data/lib/bard/plugins/deploy/ci/jenkins.rb +176 -0
  26. data/lib/bard/{ci → plugins/deploy/ci}/local.rb +7 -7
  27. data/lib/bard/{ci → plugins/deploy/ci}/runner.rb +38 -4
  28. data/lib/bard/plugins/deploy/ci.rb +38 -0
  29. data/lib/bard/plugins/deploy/ssh_strategy.rb +27 -0
  30. data/lib/bard/{deploy_strategy.rb → plugins/deploy/strategy.rb} +1 -1
  31. data/lib/bard/plugins/deploy.rb +240 -0
  32. data/lib/bard/{git.rb → plugins/git.rb} +6 -3
  33. data/lib/bard/{github.rb → plugins/github.rb} +4 -6
  34. data/lib/bard/{deploy_strategy/github_pages.rb → plugins/github_pages/strategy.rb} +13 -6
  35. data/lib/bard/plugins/github_pages.rb +30 -0
  36. data/lib/bard/plugins/hurt.rb +13 -0
  37. data/{install_files → lib/bard/plugins/install}/.github/dependabot.yml +2 -1
  38. data/{install_files → lib/bard/plugins/install}/.github/workflows/cache-ci.yml +1 -1
  39. data/{install_files → lib/bard/plugins/install}/.github/workflows/ci.yml +2 -2
  40. data/lib/bard/plugins/install.rb +9 -0
  41. data/lib/bard/plugins/open.rb +20 -0
  42. data/lib/bard/{ping.rb → plugins/ping/check.rb} +4 -4
  43. data/lib/bard/plugins/ping/target_methods.rb +23 -0
  44. data/lib/bard/plugins/ping.rb +10 -0
  45. data/lib/bard/plugins/run.rb +19 -0
  46. data/lib/bard/plugins/setup.rb +54 -0
  47. data/lib/bard/plugins/ssh/connection.rb +75 -0
  48. data/lib/bard/plugins/ssh/copy.rb +95 -0
  49. data/lib/bard/{ssh_server.rb → plugins/ssh/server.rb} +17 -42
  50. data/lib/bard/plugins/ssh/target_methods.rb +20 -0
  51. data/lib/bard/plugins/ssh.rb +10 -0
  52. data/lib/bard/plugins/url/target_methods.rb +23 -0
  53. data/lib/bard/plugins/url.rb +1 -0
  54. data/lib/bard/plugins/vim.rb +6 -0
  55. data/lib/bard/retryable.rb +25 -0
  56. data/lib/bard/secrets.rb +10 -0
  57. data/lib/bard/target.rb +27 -185
  58. data/lib/bard/version.rb +1 -1
  59. data/lib/bard.rb +1 -3
  60. data/spec/acceptance/docker/Dockerfile +3 -2
  61. data/spec/bard/capability_spec.rb +8 -50
  62. data/spec/bard/ci/github_actions_spec.rb +117 -14
  63. data/spec/bard/ci/jenkins_spec.rb +139 -0
  64. data/spec/bard/ci/runner_spec.rb +61 -0
  65. data/spec/bard/ci_spec.rb +1 -1
  66. data/spec/bard/cli/ci_spec.rb +34 -27
  67. data/spec/bard/cli/data_spec.rb +7 -26
  68. data/spec/bard/cli/deploy_spec.rb +87 -46
  69. data/spec/bard/cli/hurt_spec.rb +3 -9
  70. data/spec/bard/cli/install_spec.rb +5 -11
  71. data/spec/bard/cli/master_key_spec.rb +5 -19
  72. data/spec/bard/cli/open_spec.rb +14 -30
  73. data/spec/bard/cli/ping_spec.rb +8 -23
  74. data/spec/bard/cli/run_spec.rb +27 -21
  75. data/spec/bard/cli/setup_spec.rb +10 -27
  76. data/spec/bard/cli/ssh_spec.rb +10 -25
  77. data/spec/bard/cli/stage_spec.rb +28 -23
  78. data/spec/bard/cli/vim_spec.rb +3 -9
  79. data/spec/bard/command_spec.rb +1 -8
  80. data/spec/bard/config_spec.rb +78 -98
  81. data/spec/bard/copy_spec.rb +54 -18
  82. data/spec/bard/deploy_strategy/ssh_spec.rb +65 -7
  83. data/spec/bard/deploy_strategy_spec.rb +1 -1
  84. data/spec/bard/dynamic_dsl_spec.rb +18 -98
  85. data/spec/bard/git_spec.rb +9 -5
  86. data/spec/bard/github_spec.rb +2 -2
  87. data/spec/bard/ping_spec.rb +5 -5
  88. data/spec/bard/ssh_copy_spec.rb +44 -0
  89. data/spec/bard/ssh_server_spec.rb +8 -101
  90. data/spec/bard/target_spec.rb +66 -109
  91. data/spec/spec_helper.rb +6 -1
  92. metadata +79 -143
  93. data/README.rdoc +0 -15
  94. data/features/bard_check.feature +0 -94
  95. data/features/bard_deploy.feature +0 -18
  96. data/features/bard_pull.feature +0 -112
  97. data/features/bard_push.feature +0 -112
  98. data/features/podman_testcontainers.feature +0 -16
  99. data/features/step_definitions/check_steps.rb +0 -47
  100. data/features/step_definitions/git_steps.rb +0 -73
  101. data/features/step_definitions/global_steps.rb +0 -56
  102. data/features/step_definitions/podman_steps.rb +0 -23
  103. data/features/step_definitions/rails_steps.rb +0 -44
  104. data/features/step_definitions/submodule_steps.rb +0 -110
  105. data/features/support/grit_ext.rb +0 -13
  106. data/features/support/io.rb +0 -32
  107. data/features/support/podman.rb +0 -153
  108. data/lib/bard/ci/jenkins.rb +0 -105
  109. data/lib/bard/ci/retryable.rb +0 -27
  110. data/lib/bard/ci.rb +0 -50
  111. data/lib/bard/cli/ci.rb +0 -66
  112. data/lib/bard/cli/command.rb +0 -26
  113. data/lib/bard/cli/data.rb +0 -45
  114. data/lib/bard/cli/deploy.rb +0 -85
  115. data/lib/bard/cli/hurt.rb +0 -20
  116. data/lib/bard/cli/install.rb +0 -16
  117. data/lib/bard/cli/master_key.rb +0 -17
  118. data/lib/bard/cli/new.rb +0 -101
  119. data/lib/bard/cli/new_rails_template.rb +0 -197
  120. data/lib/bard/cli/open.rb +0 -22
  121. data/lib/bard/cli/ping.rb +0 -18
  122. data/lib/bard/cli/provision.rb +0 -34
  123. data/lib/bard/cli/run.rb +0 -24
  124. data/lib/bard/cli/setup.rb +0 -56
  125. data/lib/bard/cli/ssh.rb +0 -14
  126. data/lib/bard/cli/stage.rb +0 -27
  127. data/lib/bard/cli/vim.rb +0 -13
  128. data/lib/bard/default_config.rb +0 -35
  129. data/lib/bard/deploy_strategy/ssh.rb +0 -19
  130. data/lib/bard/github_pages.rb +0 -134
  131. data/lib/bard/provision/app.rb +0 -10
  132. data/lib/bard/provision/apt.rb +0 -16
  133. data/lib/bard/provision/authorizedkeys.rb +0 -25
  134. data/lib/bard/provision/data.rb +0 -27
  135. data/lib/bard/provision/deploy.rb +0 -10
  136. data/lib/bard/provision/http.rb +0 -16
  137. data/lib/bard/provision/logrotation.rb +0 -30
  138. data/lib/bard/provision/masterkey.rb +0 -18
  139. data/lib/bard/provision/mysql.rb +0 -22
  140. data/lib/bard/provision/passenger.rb +0 -37
  141. data/lib/bard/provision/repo.rb +0 -72
  142. data/lib/bard/provision/rvm.rb +0 -22
  143. data/lib/bard/provision/ssh.rb +0 -72
  144. data/lib/bard/provision/swapfile.rb +0 -21
  145. data/lib/bard/provision/user.rb +0 -42
  146. data/lib/bard/provision.rb +0 -16
  147. data/lib/bard/server.rb +0 -117
  148. data/spec/bard/cli/command_spec.rb +0 -50
  149. data/spec/bard/cli/new_spec.rb +0 -73
  150. data/spec/bard/cli/provision_spec.rb +0 -42
  151. data/spec/bard/github_pages_spec.rb +0 -143
  152. data/spec/bard/provision/app_spec.rb +0 -33
  153. data/spec/bard/provision/apt_spec.rb +0 -39
  154. data/spec/bard/provision/authorizedkeys_spec.rb +0 -40
  155. data/spec/bard/provision/data_spec.rb +0 -54
  156. data/spec/bard/provision/deploy_spec.rb +0 -33
  157. data/spec/bard/provision/http_spec.rb +0 -57
  158. data/spec/bard/provision/logrotation_spec.rb +0 -34
  159. data/spec/bard/provision/masterkey_spec.rb +0 -63
  160. data/spec/bard/provision/mysql_spec.rb +0 -55
  161. data/spec/bard/provision/passenger_spec.rb +0 -81
  162. data/spec/bard/provision/repo_spec.rb +0 -208
  163. data/spec/bard/provision/rvm_spec.rb +0 -49
  164. data/spec/bard/provision/ssh_spec.rb +0 -229
  165. data/spec/bard/provision/swapfile_spec.rb +0 -32
  166. data/spec/bard/provision/user_spec.rb +0 -103
  167. data/spec/bard/provision_spec.rb +0 -28
  168. data/spec/bard/server_spec.rb +0 -127
  169. /data/lib/bard/{ci → plugins/deploy/ci}/state.rb +0 -0
  170. /data/{install_files → lib/bard/plugins/install}/apt_dependencies.rb +0 -0
  171. /data/{install_files → lib/bard/plugins/install}/ci +0 -0
  172. /data/{install_files → lib/bard/plugins/install}/setup +0 -0
  173. /data/{install_files → lib/bard/plugins/install}/specified_bundler.rb +0 -0
  174. /data/{install_files → lib/bard/plugins/install}/specified_ruby.rb +0 -0
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bard
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-12-18 00:00:00.000000000 Z
10
+ date: 2026-05-17 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: thor
@@ -38,21 +38,21 @@ dependencies:
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
40
  - !ruby/object:Gem::Dependency
41
- name: term-ansicolor
41
+ name: rbnacl
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - ">="
45
45
  - !ruby/object:Gem::Version
46
- version: 1.0.3
46
+ version: '0'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - ">="
52
52
  - !ruby/object:Gem::Version
53
- version: 1.0.3
53
+ version: '0'
54
54
  - !ruby/object:Gem::Dependency
55
- name: rbnacl
55
+ name: base64
56
56
  requirement: !ruby/object:Gem::Requirement
57
57
  requirements:
58
58
  - - ">="
@@ -66,13 +66,13 @@ dependencies:
66
66
  - !ruby/object:Gem::Version
67
67
  version: '0'
68
68
  - !ruby/object:Gem::Dependency
69
- name: base64
69
+ name: rake
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
- type: :runtime
75
+ type: :development
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
@@ -80,7 +80,7 @@ dependencies:
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0'
82
82
  - !ruby/object:Gem::Dependency
83
- name: rake
83
+ name: rspec
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - ">="
@@ -94,7 +94,7 @@ dependencies:
94
94
  - !ruby/object:Gem::Version
95
95
  version: '0'
96
96
  - !ruby/object:Gem::Dependency
97
- name: rspec
97
+ name: debug
98
98
  requirement: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - ">="
@@ -108,7 +108,7 @@ dependencies:
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  - !ruby/object:Gem::Dependency
111
- name: debug
111
+ name: cucumber
112
112
  requirement: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - ">="
@@ -122,7 +122,7 @@ dependencies:
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  - !ruby/object:Gem::Dependency
125
- name: cucumber
125
+ name: testcontainers
126
126
  requirement: !ruby/object:Gem::Requirement
127
127
  requirements:
128
128
  - - ">="
@@ -136,7 +136,7 @@ dependencies:
136
136
  - !ruby/object:Gem::Version
137
137
  version: '0'
138
138
  - !ruby/object:Gem::Dependency
139
- name: testcontainers
139
+ name: ostruct
140
140
  requirement: !ruby/object:Gem::Requirement
141
141
  requirements:
142
142
  - - ">="
@@ -161,94 +161,72 @@ files:
161
161
  - ".gitmodules"
162
162
  - ".rspec"
163
163
  - ARCHITECTURE.md
164
+ - CLAUDE.md
164
165
  - CUSTOM_STRATEGIES.md
165
166
  - Gemfile
166
167
  - LICENSE
167
168
  - MIGRATION_GUIDE.md
169
+ - PLUGINS.md
168
170
  - README.md
169
- - README.rdoc
170
171
  - Rakefile
171
172
  - bard.gemspec
172
173
  - bin/bard
173
174
  - bin/setup
174
- - features/bard_check.feature
175
- - features/bard_deploy.feature
176
- - features/bard_pull.feature
177
- - features/bard_push.feature
178
- - features/podman_testcontainers.feature
179
- - features/step_definitions/check_steps.rb
180
- - features/step_definitions/git_steps.rb
181
- - features/step_definitions/global_steps.rb
182
- - features/step_definitions/podman_steps.rb
183
- - features/step_definitions/rails_steps.rb
184
- - features/step_definitions/submodule_steps.rb
175
+ - cucumber.yml
176
+ - features/ci.feature
177
+ - features/data.feature
178
+ - features/deploy.feature
179
+ - features/deploy_git_workflow.feature
180
+ - features/run.feature
181
+ - features/step_definitions/bard_steps.rb
182
+ - features/support/bard-coverage
185
183
  - features/support/env.rb
186
- - features/support/grit_ext.rb
187
- - features/support/io.rb
188
- - features/support/podman.rb
189
- - install_files/.github/dependabot.yml
190
- - install_files/.github/workflows/cache-ci.yml
191
- - install_files/.github/workflows/ci.yml
192
- - install_files/apt_dependencies.rb
193
- - install_files/ci
194
- - install_files/setup
195
- - install_files/specified_bundler.rb
196
- - install_files/specified_ruby.rb
184
+ - features/support/test_server.rb
197
185
  - lib/bard.rb
198
- - lib/bard/ci.rb
199
- - lib/bard/ci/github_actions.rb
200
- - lib/bard/ci/jenkins.rb
201
- - lib/bard/ci/local.rb
202
- - lib/bard/ci/retryable.rb
203
- - lib/bard/ci/runner.rb
204
- - lib/bard/ci/state.rb
205
186
  - lib/bard/cli.rb
206
- - lib/bard/cli/ci.rb
207
- - lib/bard/cli/command.rb
208
- - lib/bard/cli/data.rb
209
- - lib/bard/cli/deploy.rb
210
- - lib/bard/cli/hurt.rb
211
- - lib/bard/cli/install.rb
212
- - lib/bard/cli/master_key.rb
213
- - lib/bard/cli/new.rb
214
- - lib/bard/cli/new_rails_template.rb
215
- - lib/bard/cli/open.rb
216
- - lib/bard/cli/ping.rb
217
- - lib/bard/cli/provision.rb
218
- - lib/bard/cli/run.rb
219
- - lib/bard/cli/setup.rb
220
- - lib/bard/cli/ssh.rb
221
- - lib/bard/cli/stage.rb
222
- - lib/bard/cli/vim.rb
223
187
  - lib/bard/command.rb
224
188
  - lib/bard/config.rb
225
189
  - lib/bard/copy.rb
226
- - lib/bard/default_config.rb
227
- - lib/bard/deploy_strategy.rb
228
- - lib/bard/deploy_strategy/github_pages.rb
229
- - lib/bard/deploy_strategy/ssh.rb
230
- - lib/bard/git.rb
231
- - lib/bard/github.rb
232
- - lib/bard/github_pages.rb
233
- - lib/bard/ping.rb
234
- - lib/bard/provision.rb
235
- - lib/bard/provision/app.rb
236
- - lib/bard/provision/apt.rb
237
- - lib/bard/provision/authorizedkeys.rb
238
- - lib/bard/provision/data.rb
239
- - lib/bard/provision/deploy.rb
240
- - lib/bard/provision/http.rb
241
- - lib/bard/provision/logrotation.rb
242
- - lib/bard/provision/masterkey.rb
243
- - lib/bard/provision/mysql.rb
244
- - lib/bard/provision/passenger.rb
245
- - lib/bard/provision/repo.rb
246
- - lib/bard/provision/rvm.rb
247
- - lib/bard/provision/ssh.rb
248
- - lib/bard/provision/swapfile.rb
249
- - lib/bard/provision/user.rb
250
- - lib/bard/server.rb
251
- - lib/bard/ssh_server.rb
190
+ - lib/bard/plugins/data.rb
191
+ - lib/bard/plugins/deploy.rb
192
+ - lib/bard/plugins/deploy/ci.rb
193
+ - lib/bard/plugins/deploy/ci/github_actions.rb
194
+ - lib/bard/plugins/deploy/ci/jenkins.rb
195
+ - lib/bard/plugins/deploy/ci/local.rb
196
+ - lib/bard/plugins/deploy/ci/runner.rb
197
+ - lib/bard/plugins/deploy/ci/state.rb
198
+ - lib/bard/plugins/deploy/ssh_strategy.rb
199
+ - lib/bard/plugins/deploy/strategy.rb
200
+ - lib/bard/plugins/git.rb
201
+ - lib/bard/plugins/github.rb
202
+ - lib/bard/plugins/github_pages.rb
203
+ - lib/bard/plugins/github_pages/strategy.rb
204
+ - lib/bard/plugins/hurt.rb
205
+ - lib/bard/plugins/install.rb
206
+ - lib/bard/plugins/install/.github/dependabot.yml
207
+ - lib/bard/plugins/install/.github/workflows/cache-ci.yml
208
+ - lib/bard/plugins/install/.github/workflows/ci.yml
209
+ - lib/bard/plugins/install/apt_dependencies.rb
210
+ - lib/bard/plugins/install/ci
211
+ - lib/bard/plugins/install/setup
212
+ - lib/bard/plugins/install/specified_bundler.rb
213
+ - lib/bard/plugins/install/specified_ruby.rb
214
+ - lib/bard/plugins/open.rb
215
+ - lib/bard/plugins/ping.rb
216
+ - lib/bard/plugins/ping/check.rb
217
+ - lib/bard/plugins/ping/target_methods.rb
218
+ - lib/bard/plugins/run.rb
219
+ - lib/bard/plugins/setup.rb
220
+ - lib/bard/plugins/ssh.rb
221
+ - lib/bard/plugins/ssh/connection.rb
222
+ - lib/bard/plugins/ssh/copy.rb
223
+ - lib/bard/plugins/ssh/server.rb
224
+ - lib/bard/plugins/ssh/target_methods.rb
225
+ - lib/bard/plugins/url.rb
226
+ - lib/bard/plugins/url/target_methods.rb
227
+ - lib/bard/plugins/vim.rb
228
+ - lib/bard/retryable.rb
229
+ - lib/bard/secrets.rb
252
230
  - lib/bard/target.rb
253
231
  - lib/bard/version.rb
254
232
  - spec/acceptance/.gitignore
@@ -257,18 +235,17 @@ files:
257
235
  - spec/acceptance/docker/test_key.pub
258
236
  - spec/bard/capability_spec.rb
259
237
  - spec/bard/ci/github_actions_spec.rb
238
+ - spec/bard/ci/jenkins_spec.rb
239
+ - spec/bard/ci/runner_spec.rb
260
240
  - spec/bard/ci_spec.rb
261
241
  - spec/bard/cli/ci_spec.rb
262
- - spec/bard/cli/command_spec.rb
263
242
  - spec/bard/cli/data_spec.rb
264
243
  - spec/bard/cli/deploy_spec.rb
265
244
  - spec/bard/cli/hurt_spec.rb
266
245
  - spec/bard/cli/install_spec.rb
267
246
  - spec/bard/cli/master_key_spec.rb
268
- - spec/bard/cli/new_spec.rb
269
247
  - spec/bard/cli/open_spec.rb
270
248
  - spec/bard/cli/ping_spec.rb
271
- - spec/bard/cli/provision_spec.rb
272
249
  - spec/bard/cli/run_spec.rb
273
250
  - spec/bard/cli/setup_spec.rb
274
251
  - spec/bard/cli/ssh_spec.rb
@@ -281,26 +258,9 @@ files:
281
258
  - spec/bard/deploy_strategy_spec.rb
282
259
  - spec/bard/dynamic_dsl_spec.rb
283
260
  - spec/bard/git_spec.rb
284
- - spec/bard/github_pages_spec.rb
285
261
  - spec/bard/github_spec.rb
286
262
  - spec/bard/ping_spec.rb
287
- - spec/bard/provision/app_spec.rb
288
- - spec/bard/provision/apt_spec.rb
289
- - spec/bard/provision/authorizedkeys_spec.rb
290
- - spec/bard/provision/data_spec.rb
291
- - spec/bard/provision/deploy_spec.rb
292
- - spec/bard/provision/http_spec.rb
293
- - spec/bard/provision/logrotation_spec.rb
294
- - spec/bard/provision/masterkey_spec.rb
295
- - spec/bard/provision/mysql_spec.rb
296
- - spec/bard/provision/passenger_spec.rb
297
- - spec/bard/provision/repo_spec.rb
298
- - spec/bard/provision/rvm_spec.rb
299
- - spec/bard/provision/ssh_spec.rb
300
- - spec/bard/provision/swapfile_spec.rb
301
- - spec/bard/provision/user_spec.rb
302
- - spec/bard/provision_spec.rb
303
- - spec/bard/server_spec.rb
263
+ - spec/bard/ssh_copy_spec.rb
304
264
  - spec/bard/ssh_server_spec.rb
305
265
  - spec/bard/target_spec.rb
306
266
  - spec/bard_spec.rb
@@ -318,7 +278,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
318
278
  requirements:
319
279
  - - ">="
320
280
  - !ruby/object:Gem::Version
321
- version: '0'
281
+ version: '3.3'
322
282
  required_rubygems_version: !ruby/object:Gem::Requirement
323
283
  requirements:
324
284
  - - ">="
@@ -329,39 +289,32 @@ rubygems_version: 3.6.2
329
289
  specification_version: 4
330
290
  summary: CLI to automate common development tasks.
331
291
  test_files:
332
- - features/bard_check.feature
333
- - features/bard_deploy.feature
334
- - features/bard_pull.feature
335
- - features/bard_push.feature
336
- - features/podman_testcontainers.feature
337
- - features/step_definitions/check_steps.rb
338
- - features/step_definitions/git_steps.rb
339
- - features/step_definitions/global_steps.rb
340
- - features/step_definitions/podman_steps.rb
341
- - features/step_definitions/rails_steps.rb
342
- - features/step_definitions/submodule_steps.rb
292
+ - features/ci.feature
293
+ - features/data.feature
294
+ - features/deploy.feature
295
+ - features/deploy_git_workflow.feature
296
+ - features/run.feature
297
+ - features/step_definitions/bard_steps.rb
298
+ - features/support/bard-coverage
343
299
  - features/support/env.rb
344
- - features/support/grit_ext.rb
345
- - features/support/io.rb
346
- - features/support/podman.rb
300
+ - features/support/test_server.rb
347
301
  - spec/acceptance/.gitignore
348
302
  - spec/acceptance/docker/Dockerfile
349
303
  - spec/acceptance/docker/test_key
350
304
  - spec/acceptance/docker/test_key.pub
351
305
  - spec/bard/capability_spec.rb
352
306
  - spec/bard/ci/github_actions_spec.rb
307
+ - spec/bard/ci/jenkins_spec.rb
308
+ - spec/bard/ci/runner_spec.rb
353
309
  - spec/bard/ci_spec.rb
354
310
  - spec/bard/cli/ci_spec.rb
355
- - spec/bard/cli/command_spec.rb
356
311
  - spec/bard/cli/data_spec.rb
357
312
  - spec/bard/cli/deploy_spec.rb
358
313
  - spec/bard/cli/hurt_spec.rb
359
314
  - spec/bard/cli/install_spec.rb
360
315
  - spec/bard/cli/master_key_spec.rb
361
- - spec/bard/cli/new_spec.rb
362
316
  - spec/bard/cli/open_spec.rb
363
317
  - spec/bard/cli/ping_spec.rb
364
- - spec/bard/cli/provision_spec.rb
365
318
  - spec/bard/cli/run_spec.rb
366
319
  - spec/bard/cli/setup_spec.rb
367
320
  - spec/bard/cli/ssh_spec.rb
@@ -374,26 +327,9 @@ test_files:
374
327
  - spec/bard/deploy_strategy_spec.rb
375
328
  - spec/bard/dynamic_dsl_spec.rb
376
329
  - spec/bard/git_spec.rb
377
- - spec/bard/github_pages_spec.rb
378
330
  - spec/bard/github_spec.rb
379
331
  - spec/bard/ping_spec.rb
380
- - spec/bard/provision/app_spec.rb
381
- - spec/bard/provision/apt_spec.rb
382
- - spec/bard/provision/authorizedkeys_spec.rb
383
- - spec/bard/provision/data_spec.rb
384
- - spec/bard/provision/deploy_spec.rb
385
- - spec/bard/provision/http_spec.rb
386
- - spec/bard/provision/logrotation_spec.rb
387
- - spec/bard/provision/masterkey_spec.rb
388
- - spec/bard/provision/mysql_spec.rb
389
- - spec/bard/provision/passenger_spec.rb
390
- - spec/bard/provision/repo_spec.rb
391
- - spec/bard/provision/rvm_spec.rb
392
- - spec/bard/provision/ssh_spec.rb
393
- - spec/bard/provision/swapfile_spec.rb
394
- - spec/bard/provision/user_spec.rb
395
- - spec/bard/provision_spec.rb
396
- - spec/bard/server_spec.rb
332
+ - spec/bard/ssh_copy_spec.rb
397
333
  - spec/bard/ssh_server_spec.rb
398
334
  - spec/bard/target_spec.rb
399
335
  - spec/bard_spec.rb
data/README.rdoc DELETED
@@ -1,15 +0,0 @@
1
- = BARD
2
-
3
- This is a collection of tools designed to ease collaboration within Bot and Rose Design.
4
- It wraps git, capistrano, and rake to make things as simple as:
5
-
6
- bard stage
7
- bard deploy
8
-
9
- Seed database from staging or production:
10
- bard data
11
-
12
- == Copyright
13
-
14
- Copyright (c) 2018 Micah Geisel. See LICENSE for details.
15
-
@@ -1,94 +0,0 @@
1
- Feature: Bard can check its environment for missing dependencies and potential problems
2
-
3
- Scenario: Bard check returns its version
4
- When I type "bard check -v"
5
- Then I should see the current version of bard
6
- And I should see the current version of git
7
- And I should see the current version of rubygems
8
- And I should see the current version of ruby
9
-
10
- Scenario: Bard check examines a local project for problems
11
- Given a shared rails project
12
- When I type "bard check"
13
- Then I should see "No problems"
14
-
15
- Scenario: Bard check detects missing database
16
- Given a shared rails project
17
- And the database is missing
18
- When I type "bard check"
19
- Then I should see the fatal error "missing database"
20
-
21
- Scenario: Bard check detects pending migrations
22
- Given a shared rails project
23
- And a commit with a new migration
24
- When I type "bard check"
25
- Then I should see the fatal error "pending migrations"
26
-
27
- Scenario: Bard check detects missing config/database.yml
28
- Given a shared rails project
29
- And "config/database.yml" is missing
30
- When I type "bard check"
31
- Then I should see the fatal error "missing config/database.yml"
32
-
33
- Scenario: Bard check detects missing submodules
34
- Given a shared rails project
35
- And a submodule
36
- And the submodule is missing
37
- When I type "bard check"
38
- Then I should see the fatal error "missing submodule"
39
-
40
- Scenario: Bard check detects submodules with detached heads
41
- Given a shared rails project
42
- And a submodule
43
- And the submodule has a detached head
44
- When I type "bard check"
45
- Then I should see the fatal error "submodule has a detached head"
46
-
47
- Scenario: Bard check detects missing gems
48
- Given a shared rails project
49
- And the test gem is not installed
50
- And a commit that adds the test gem as a dependency
51
- When I type "bard check"
52
- Then I should see the fatal error "missing gems"
53
-
54
- Scenario: Bard check detects master branch checked out
55
- Given a shared rails project
56
- And I am on the "master" branch
57
- When I type "bard check"
58
- Then I should see the fatal error "master branch"
59
-
60
- Scenario: Bard check detects missing integration branch
61
- Given a shared rails project
62
- And there is no integration branch
63
- When I type "bard check"
64
- Then I should see the fatal error "missing integration branch"
65
-
66
- Scenario: Bard check detects non-tracking integration branch
67
- Given a shared rails project
68
- And the integration branch isnt tracking origin/integration
69
- When I type "bard check"
70
- Then I should see the fatal error "tracking"
71
-
72
- Scenario: Bard check detects gitignored Capfile
73
- Given a shared rails project
74
- And the ".gitignore" file includes "Capfile"
75
- When I type "bard check"
76
- Then I should see the fatal error "Capfile should not be gitignored"
77
-
78
- Scenario: Bard check detects gitignored config/deploy.rb
79
- Given a shared rails project
80
- And the ".gitignore" file includes "config/deploy.rb"
81
- When I type "bard check"
82
- Then I should see the fatal error "config/deploy.rb should not be gitignored"
83
-
84
- Scenario: Bard check detects missing bard rake tasks
85
- Given a shared rails project
86
- And the "Rakefile" file does not include "bard/rake"
87
- When I type "bard check"
88
- Then I should see the fatal error "missing bard rake tasks"
89
-
90
- Scenario: Bard check detects missing bard cap tasks
91
- Given a shared rails project
92
- And the "Capfile" file does not include "bard/capistrano"
93
- When I type "bard check"
94
- Then I should see the fatal error "missing bard capistrano tasks"
@@ -1,18 +0,0 @@
1
- Feature: Bard deploy should fold the integration branch into master and perform a deploy
2
-
3
- Scenario: Bard deploy detects non-fast-forward merge from integration to master
4
- Given a shared rails project
5
- And on development_b, a commit on the "master" branch
6
- And on development_b, I type "git push origin master"
7
- And a commit
8
- When I type "bard deploy"
9
- Then I should see the fatal error "Rebase"
10
-
11
- Scenario: Bard deploy works
12
- Given a shared rails project
13
- And a commit
14
- When I type "bard deploy"
15
- Then the "master" branch should match the "integration" branch
16
- And the "integration" branch should match the "origin/integration" branch
17
- And the "origin/master" branch should match the "origin/integration" branch
18
-
@@ -1,112 +0,0 @@
1
- Feature: bard pull
2
- Background:
3
- Given a shared rails project
4
-
5
- Scenario: Pulling down the latest changes from the remote integration branch
6
- Given on development_b, a commit
7
- And on development_b, I type "bard push"
8
- When I type "bard pull"
9
- Then the "integration" branch should match the "development_b:integration" branch
10
-
11
- Scenario: Pulling down when the latest changes include a submodule addition
12
- Given on development_b, a commit with a new submodule
13
- And on development_b, I type "bard push"
14
- When I type "bard pull"
15
- Then the "integration" branch should match the "development_b:integration" branch
16
- And there should be one new submodule
17
- And the submodule branch should match the submodule origin branch
18
- And the submodule working directory should be clean
19
-
20
- Scenario: Pulling down when the latest changes include a submodule update
21
- Given a submodule
22
- And on development_b, a commit with a submodule update
23
- And on development_b, I type "bard push"
24
- When I type "bard pull"
25
- Then the "integration" branch should match the "development_b:integration" branch
26
- And the submodule branch should match the submodule origin branch
27
- And the submodule working directory should be clean
28
-
29
- Scenario: Pulling down when the latest changes include a submodule url change
30
- Given a submodule
31
- And on development_b, a commit with a submodule url change
32
- And on development_b, I type "bard push"
33
- When I type "bard pull"
34
- Then the "integration" branch should match the "development_b:integration" branch
35
- And the submodule url should be changed
36
- And the submodule branch should match the submodule origin branch
37
- And the submodule working directory should be clean
38
-
39
- # TODO
40
- #Scenario: Pulling down when the latest changes include a submodule deletion
41
- # Given a submodule
42
- # And on staging, a commit with a submodule deletion
43
- # When I type "bard pull"
44
- # Then the "integration" branch should match the "origin/integration" branch
45
- # And the submodule should be deleted
46
-
47
- Scenario: Pulling latest changes from the remote integration branch after committing locally
48
- Given on development_b, a commit
49
- And on development_b, I type "bard push"
50
- And a commit
51
- When I type "bard pull"
52
- Then I should see the warning "Someone has pushed some changes"
53
- And the "integration" branch should be a fast-forward from the "development_b:integration" branch
54
-
55
- Scenario: Bard pull from a topic branch
56
- Given on development_b, a commit on the "topic" branch
57
- And on development_b, I am on the "topic" branch
58
- And on development_b, I type "bard push"
59
- And I am on the "topic" branch
60
- When I type "bard pull"
61
- Then the "topic" branch should match the "development_b:topic" branch
62
-
63
- Scenario: Trying to bard pull when not in the project root
64
- Given I am in a subdirectory
65
- When I type "bard pull"
66
- Then I should see the fatal error "root directory"
67
-
68
- Scenario: Trying to bard pull with a dirty working directory
69
- Given on development_b, a commit
70
- And on development_b, I type "bard push"
71
- And a dirty working directory
72
- When I type "bard pull"
73
- Then I should see the fatal error "You have uncommitted changes!"
74
- And the "integration" branch should not match the "development_b:integration" branch
75
-
76
- Scenario: Trying to bard pull when on the "master" branch
77
- Given on development_b, a commit on the "master" branch
78
- And on development_b, I am on the "master" branch
79
- And on development_b, I type "git push origin master"
80
- And I am on the "master" branch
81
- When I type "bard pull"
82
- Then I should see the fatal error "on the master branch"
83
- And the "master" branch should not match the "development_b:master" branch
84
-
85
- Scenario: Pulling in a change that includes a migration on a dev machine
86
- Given on development_b, a commit with a new migration
87
- And on development_b, I type "bard push"
88
- And a development database
89
- When I type "bard pull"
90
- Then the development database should include that migration
91
-
92
- Scenario: Pulling in a change that includes a migration on a dev and testing machine
93
- Given on development_b, a commit with a new migration
94
- And on development_b, I type "bard push"
95
- And a development database
96
- And a test database
97
- When I type "bard pull"
98
- Then the development database should include that migration
99
- And the test database should include that migration
100
-
101
- Scenario: Pulling in a change that includes a gem dependency change
102
- Given the test gem is not installed
103
- And on development_b, a commit that adds the test gem as a dependency
104
- And on development_b, I type "bard push"
105
- When I type "bard pull"
106
- Then the test gem should be installed
107
-
108
- Scenario: Pulling in a change should restart the rails server
109
- Given on development_b, a commit
110
- And on development_b, I type "bard push"
111
- When I type "bard pull"
112
- Then passenger should have been restarted