avm-tools 0.45.0 → 0.50.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 (81) hide show
  1. checksums.yaml +4 -4
  2. data/lib/avm/git/issue/complete.rb +1 -1
  3. data/lib/avm/git/issue/complete/_test.rb +16 -2
  4. data/lib/avm/git/issue/complete/_validations.rb +9 -14
  5. data/lib/avm/git/issue/complete/validation.rb +31 -0
  6. data/lib/avm/git/revision_test.rb +2 -2
  7. data/lib/avm/instances/configuration/_tests.rb +14 -0
  8. data/lib/avm/rails.rb +9 -0
  9. data/lib/avm/rails/runners.rb +11 -0
  10. data/lib/avm/rails/runners/bundle.rb +35 -0
  11. data/lib/avm/rails/runners/runner.rb +48 -0
  12. data/lib/avm/ruby.rb +0 -20
  13. data/lib/avm/stereotypes/eac_redmine_base0/deploy.rb +2 -2
  14. data/lib/avm/stereotypes/eac_webapp_base0/instance.rb +3 -3
  15. data/lib/avm/tools/runner/eac_rails_base0/bundle.rb +14 -0
  16. data/lib/avm/tools/runner/eac_rails_base0/runner.rb +14 -0
  17. data/lib/avm/tools/runner/eac_redmine_base0/bundle.rb +2 -24
  18. data/lib/avm/tools/runner/eac_redmine_base0/runner.rb +14 -0
  19. data/lib/avm/tools/runner/files/format.rb +1 -1
  20. data/lib/avm/tools/runner/git.rb +1 -1
  21. data/lib/avm/tools/runner/launcher.rb +12 -0
  22. data/lib/avm/tools/version.rb +1 -1
  23. data/lib/eac_launcher.rb +17 -0
  24. data/lib/eac_launcher/context.rb +81 -0
  25. data/lib/eac_launcher/context/instance_discovery.rb +54 -0
  26. data/lib/eac_launcher/context/instance_manager.rb +94 -0
  27. data/lib/eac_launcher/context/settings.rb +51 -0
  28. data/lib/eac_launcher/git.rb +7 -0
  29. data/lib/eac_launcher/git/base.rb +100 -0
  30. data/lib/eac_launcher/git/base/class_methods.rb +26 -0
  31. data/lib/eac_launcher/git/base/dirty_files.rb +30 -0
  32. data/lib/eac_launcher/git/base/remotes.rb +38 -0
  33. data/lib/eac_launcher/git/base/subrepo.rb +42 -0
  34. data/lib/eac_launcher/git/base/underlying.rb +59 -0
  35. data/lib/eac_launcher/git/error.rb +11 -0
  36. data/lib/eac_launcher/git/mirror_update.rb +36 -0
  37. data/lib/eac_launcher/git/publish_base.rb +118 -0
  38. data/lib/eac_launcher/git/remote.rb +53 -0
  39. data/lib/eac_launcher/git/sub_warp_base.rb +30 -0
  40. data/lib/eac_launcher/git/warp_base.rb +54 -0
  41. data/lib/eac_launcher/instances.rb +6 -0
  42. data/lib/eac_launcher/instances/base.rb +91 -0
  43. data/lib/eac_launcher/instances/base/cache.rb +41 -0
  44. data/lib/eac_launcher/instances/error.rb +8 -0
  45. data/lib/eac_launcher/instances/runner_helper.rb +42 -0
  46. data/lib/eac_launcher/instances/settings.rb +23 -0
  47. data/lib/eac_launcher/paths.rb +4 -0
  48. data/lib/eac_launcher/paths/logical.rb +80 -0
  49. data/lib/eac_launcher/paths/real.rb +42 -0
  50. data/lib/eac_launcher/project.rb +16 -0
  51. data/lib/eac_launcher/publish.rb +4 -0
  52. data/lib/eac_launcher/publish/base.rb +45 -0
  53. data/lib/eac_launcher/publish/check_result.rb +65 -0
  54. data/lib/eac_launcher/ruby.rb +3 -0
  55. data/lib/eac_launcher/ruby/gem.rb +4 -0
  56. data/lib/eac_launcher/ruby/gem/build.rb +123 -0
  57. data/lib/eac_launcher/ruby/gem/specification.rb +61 -0
  58. data/lib/eac_launcher/runner.rb +21 -0
  59. data/lib/eac_launcher/runner/instances.rb +41 -0
  60. data/lib/eac_launcher/runner/projects.rb +46 -0
  61. data/lib/eac_launcher/runner/publish.rb +59 -0
  62. data/lib/eac_launcher/stereotype.rb +52 -0
  63. data/lib/eac_launcher/stereotypes.rb +14 -0
  64. data/lib/eac_launcher/stereotypes/git.rb +21 -0
  65. data/lib/eac_launcher/stereotypes/git/publish.rb +13 -0
  66. data/lib/eac_launcher/stereotypes/git/warp.rb +25 -0
  67. data/lib/eac_launcher/stereotypes/git_subrepo.rb +30 -0
  68. data/lib/eac_launcher/stereotypes/git_subrepo/publish.rb +12 -0
  69. data/lib/eac_launcher/stereotypes/git_subrepo/warp.rb +85 -0
  70. data/lib/eac_launcher/stereotypes/git_subtree.rb +47 -0
  71. data/lib/eac_launcher/stereotypes/git_subtree/publish.rb +10 -0
  72. data/lib/eac_launcher/stereotypes/git_subtree/warp.rb +27 -0
  73. data/lib/eac_launcher/stereotypes/rails.rb +21 -0
  74. data/lib/eac_launcher/stereotypes/redmine_plugin.rb +21 -0
  75. data/lib/eac_launcher/stereotypes/ruby_gem.rb +27 -0
  76. data/lib/eac_launcher/stereotypes/ruby_gem/publish.rb +127 -0
  77. data/lib/eac_launcher/vendor.rb +3 -0
  78. data/lib/eac_launcher/vendor/github.rb +18 -0
  79. data/lib/eac_launcher/version.rb +5 -0
  80. metadata +122 -9
  81. data/lib/avm/patches/eac_launcher_git_base.rb +0 -77
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_launcher/vendor/github'
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacLauncher
4
+ module Vendor
5
+ module Github
6
+ class << self
7
+ def to_ssh_url(url)
8
+ return nil if url.blank?
9
+
10
+ url_no_dot_git = url.gsub(/\.git\z/, '')
11
+
12
+ m = %r{\Ahttps://github.com/([^/]+)/([^/]+)\z}.match(url_no_dot_git.to_s)
13
+ m ? "git@github.com:#{m[1]}/#{m[2]}.git" : url
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EacLauncher
4
+ VERSION = '0.8.0'
5
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.45.0
4
+ version: 0.50.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Esquilo Azul Company
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-12 00:00:00.000000000 Z
11
+ date: 2020-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aranha-parsers
@@ -59,19 +59,19 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: 0.0.1
61
61
  - !ruby/object:Gem::Dependency
62
- name: eac_launcher
62
+ name: curb
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '0.8'
67
+ version: 0.9.10
68
68
  type: :runtime
69
69
  prerelease: false
70
70
  version_requirements: !ruby/object:Gem::Requirement
71
71
  requirements:
72
72
  - - "~>"
73
73
  - !ruby/object:Gem::Version
74
- version: '0.8'
74
+ version: 0.9.10
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: eac_ruby_gem_support
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -82,7 +82,7 @@ dependencies:
82
82
  - - ">="
83
83
  - !ruby/object:Gem::Version
84
84
  version: 0.1.1
85
- type: :runtime
85
+ type: :development
86
86
  prerelease: false
87
87
  version_requirements: !ruby/object:Gem::Requirement
88
88
  requirements:
@@ -92,6 +92,20 @@ dependencies:
92
92
  - - ">="
93
93
  - !ruby/object:Gem::Version
94
94
  version: 0.1.1
95
+ - !ruby/object:Gem::Dependency
96
+ name: eac_cli
97
+ requirement: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '0.3'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '0.3'
95
109
  - !ruby/object:Gem::Dependency
96
110
  name: eac_ruby_gems_utils
97
111
  requirement: !ruby/object:Gem::Requirement
@@ -112,14 +126,14 @@ dependencies:
112
126
  requirements:
113
127
  - - "~>"
114
128
  - !ruby/object:Gem::Version
115
- version: '0.32'
129
+ version: '0.35'
116
130
  type: :runtime
117
131
  prerelease: false
118
132
  version_requirements: !ruby/object:Gem::Requirement
119
133
  requirements:
120
134
  - - "~>"
121
135
  - !ruby/object:Gem::Version
122
- version: '0.32'
136
+ version: '0.35'
123
137
  - !ruby/object:Gem::Dependency
124
138
  name: filesize
125
139
  requirement: !ruby/object:Gem::Requirement
@@ -134,6 +148,20 @@ dependencies:
134
148
  - - ">="
135
149
  - !ruby/object:Gem::Version
136
150
  version: '0'
151
+ - !ruby/object:Gem::Dependency
152
+ name: git
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - "~>"
156
+ - !ruby/object:Gem::Version
157
+ version: '1.7'
158
+ type: :runtime
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - "~>"
163
+ - !ruby/object:Gem::Version
164
+ version: '1.7'
137
165
  - !ruby/object:Gem::Dependency
138
166
  name: htmlbeautifier
139
167
  requirement: !ruby/object:Gem::Requirement
@@ -168,6 +196,26 @@ dependencies:
168
196
  - - ">="
169
197
  - !ruby/object:Gem::Version
170
198
  version: '0'
199
+ - !ruby/object:Gem::Dependency
200
+ name: ruby-progressbar
201
+ requirement: !ruby/object:Gem::Requirement
202
+ requirements:
203
+ - - "~>"
204
+ - !ruby/object:Gem::Version
205
+ version: '1.10'
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: 1.10.1
209
+ type: :runtime
210
+ prerelease: false
211
+ version_requirements: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '1.10'
216
+ - - ">="
217
+ - !ruby/object:Gem::Version
218
+ version: 1.10.1
171
219
  description:
172
220
  email:
173
221
  executables:
@@ -226,6 +274,7 @@ files:
226
274
  - lib/avm/git/issue/complete/_tracker.rb
227
275
  - lib/avm/git/issue/complete/_validations.rb
228
276
  - lib/avm/git/issue/complete/_working_tree.rb
277
+ - lib/avm/git/issue/complete/validation.rb
229
278
  - lib/avm/git/revision_test.rb
230
279
  - lib/avm/git/spec_helper.rb
231
280
  - lib/avm/instances.rb
@@ -249,9 +298,12 @@ files:
249
298
  - lib/avm/instances/entries/entry_reader.rb
250
299
  - lib/avm/instances/entry_keys.rb
251
300
  - lib/avm/patches.rb
252
- - lib/avm/patches/eac_launcher_git_base.rb
253
301
  - lib/avm/patches/object/template.rb
254
302
  - lib/avm/path_string.rb
303
+ - lib/avm/rails.rb
304
+ - lib/avm/rails/runners.rb
305
+ - lib/avm/rails/runners/bundle.rb
306
+ - lib/avm/rails/runners/runner.rb
255
307
  - lib/avm/result.rb
256
308
  - lib/avm/ruby.rb
257
309
  - lib/avm/ruby/rubocop.rb
@@ -298,14 +350,17 @@ files:
298
350
  - lib/avm/tools/runner.rb
299
351
  - lib/avm/tools/runner/eac_rails_base0.rb
300
352
  - lib/avm/tools/runner/eac_rails_base0/apache_host.rb
353
+ - lib/avm/tools/runner/eac_rails_base0/bundle.rb
301
354
  - lib/avm/tools/runner/eac_rails_base0/data.rb
302
355
  - lib/avm/tools/runner/eac_rails_base0/deploy.rb
356
+ - lib/avm/tools/runner/eac_rails_base0/runner.rb
303
357
  - lib/avm/tools/runner/eac_redmine_base0.rb
304
358
  - lib/avm/tools/runner/eac_redmine_base0/bundle.rb
305
359
  - lib/avm/tools/runner/eac_redmine_base0/data.rb
306
360
  - lib/avm/tools/runner/eac_redmine_base0/data/dump.rb
307
361
  - lib/avm/tools/runner/eac_redmine_base0/deploy.rb
308
362
  - lib/avm/tools/runner/eac_redmine_base0/docker.rb
363
+ - lib/avm/tools/runner/eac_redmine_base0/runner.rb
309
364
  - lib/avm/tools/runner/eac_wordpress_base0.rb
310
365
  - lib/avm/tools/runner/eac_wordpress_base0/apache_host.rb
311
366
  - lib/avm/tools/runner/eac_wordpress_base0/data.rb
@@ -320,11 +375,69 @@ files:
320
375
  - lib/avm/tools/runner/git/dirty_files.rb
321
376
  - lib/avm/tools/runner/git/issue.rb
322
377
  - lib/avm/tools/runner/git/revisions_test.rb
378
+ - lib/avm/tools/runner/launcher.rb
323
379
  - lib/avm/tools/runner/ruby.rb
324
380
  - lib/avm/tools/runner/ruby/rubocop.rb
325
381
  - lib/avm/tools/runner/self.rb
326
382
  - lib/avm/tools/runner/self/docker.rb
327
383
  - lib/avm/tools/version.rb
384
+ - lib/eac_launcher.rb
385
+ - lib/eac_launcher/context.rb
386
+ - lib/eac_launcher/context/instance_discovery.rb
387
+ - lib/eac_launcher/context/instance_manager.rb
388
+ - lib/eac_launcher/context/settings.rb
389
+ - lib/eac_launcher/git.rb
390
+ - lib/eac_launcher/git/base.rb
391
+ - lib/eac_launcher/git/base/class_methods.rb
392
+ - lib/eac_launcher/git/base/dirty_files.rb
393
+ - lib/eac_launcher/git/base/remotes.rb
394
+ - lib/eac_launcher/git/base/subrepo.rb
395
+ - lib/eac_launcher/git/base/underlying.rb
396
+ - lib/eac_launcher/git/error.rb
397
+ - lib/eac_launcher/git/mirror_update.rb
398
+ - lib/eac_launcher/git/publish_base.rb
399
+ - lib/eac_launcher/git/remote.rb
400
+ - lib/eac_launcher/git/sub_warp_base.rb
401
+ - lib/eac_launcher/git/warp_base.rb
402
+ - lib/eac_launcher/instances.rb
403
+ - lib/eac_launcher/instances/base.rb
404
+ - lib/eac_launcher/instances/base/cache.rb
405
+ - lib/eac_launcher/instances/error.rb
406
+ - lib/eac_launcher/instances/runner_helper.rb
407
+ - lib/eac_launcher/instances/settings.rb
408
+ - lib/eac_launcher/paths.rb
409
+ - lib/eac_launcher/paths/logical.rb
410
+ - lib/eac_launcher/paths/real.rb
411
+ - lib/eac_launcher/project.rb
412
+ - lib/eac_launcher/publish.rb
413
+ - lib/eac_launcher/publish/base.rb
414
+ - lib/eac_launcher/publish/check_result.rb
415
+ - lib/eac_launcher/ruby.rb
416
+ - lib/eac_launcher/ruby/gem.rb
417
+ - lib/eac_launcher/ruby/gem/build.rb
418
+ - lib/eac_launcher/ruby/gem/specification.rb
419
+ - lib/eac_launcher/runner.rb
420
+ - lib/eac_launcher/runner/instances.rb
421
+ - lib/eac_launcher/runner/projects.rb
422
+ - lib/eac_launcher/runner/publish.rb
423
+ - lib/eac_launcher/stereotype.rb
424
+ - lib/eac_launcher/stereotypes.rb
425
+ - lib/eac_launcher/stereotypes/git.rb
426
+ - lib/eac_launcher/stereotypes/git/publish.rb
427
+ - lib/eac_launcher/stereotypes/git/warp.rb
428
+ - lib/eac_launcher/stereotypes/git_subrepo.rb
429
+ - lib/eac_launcher/stereotypes/git_subrepo/publish.rb
430
+ - lib/eac_launcher/stereotypes/git_subrepo/warp.rb
431
+ - lib/eac_launcher/stereotypes/git_subtree.rb
432
+ - lib/eac_launcher/stereotypes/git_subtree/publish.rb
433
+ - lib/eac_launcher/stereotypes/git_subtree/warp.rb
434
+ - lib/eac_launcher/stereotypes/rails.rb
435
+ - lib/eac_launcher/stereotypes/redmine_plugin.rb
436
+ - lib/eac_launcher/stereotypes/ruby_gem.rb
437
+ - lib/eac_launcher/stereotypes/ruby_gem/publish.rb
438
+ - lib/eac_launcher/vendor.rb
439
+ - lib/eac_launcher/vendor/github.rb
440
+ - lib/eac_launcher/version.rb
328
441
  - template/avm/self/docker_image/Dockerfile
329
442
  - template/avm/self/docker_image/entrypoint.sh
330
443
  - template/avm/stereotypes/eac_rails_base0/deploy/config/database.yml.template
@@ -1,77 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_launcher/git/base'
4
- require 'eac_launcher/git/error'
5
- require 'eac_ruby_utils/patch'
6
- require 'eac_ruby_utils/require_sub'
7
- ::EacRubyUtils.require_sub(__FILE__)
8
-
9
- module Avm
10
- module Patches
11
- module EacLauncherGitBase
12
- extend ::ActiveSupport::Concern
13
-
14
- included do
15
- extend ClassMethods
16
- include InstanceMethods
17
- end
18
-
19
- module ClassMethods
20
- # @return [EacLauncher::Git::Base]
21
- def by_root(search_base_path)
22
- new(find_root(search_base_path).to_path)
23
- end
24
-
25
- # Searches the root path for the Git repository which includes +search_base_path+.
26
- # @return [Pathname]
27
- def find_root(search_base_path)
28
- path = search_base_path.to_pathname.expand_path
29
- loop do
30
- return path if path.join('.git').exist?
31
- raise "\".git\" not found for \"#{search_base_path}\"" if path.parent.root?
32
-
33
- path = path.parent
34
- end
35
- end
36
- end
37
-
38
- module InstanceMethods
39
- def execute(*args)
40
- args, options = build_args(args)
41
- ::EacRubyUtils::Envs.local.command(*args).execute(options)
42
- end
43
-
44
- def command(*args)
45
- args, _options = build_args(args)
46
- ::EacRubyUtils::Envs.local.command(*args)
47
- end
48
-
49
- def dirty?
50
- dirty_files.any?
51
- end
52
-
53
- def dirty_files
54
- execute!('status', '--porcelain', '--untracked-files').each_line.map do |line|
55
- parse_status_line(line.gsub(/\n\z/, ''))
56
- end
57
- end
58
-
59
- # @return [Pathname]
60
- def root_path
61
- @root_path ||= self.class.find_root(to_s)
62
- end
63
-
64
- private
65
-
66
- def parse_status_line(line)
67
- m = /\A(.)(.)\s(.+)\z/.match(line)
68
- ::Kernel.raise "Status pattern does not match \"#{line}\"" unless m
69
- ::OpenStruct.new(index: m[1], worktree: m[2], path: m[3],
70
- absolute_path: ::File.expand_path(m[3], self))
71
- end
72
- end
73
- end
74
- end
75
- end
76
-
77
- ::EacRubyUtils.patch(::EacLauncher::Git::Base, ::Avm::Patches::EacLauncherGitBase)