orchestration 0.4.18 → 0.4.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +5 -0
- data/Gemfile +0 -18
- data/README.md +7 -1
- data/lib/orchestration/file_helpers.rb +12 -3
- data/lib/orchestration/install_generator.rb +2 -0
- data/lib/orchestration/templates/orchestration.mk.erb +20 -16
- data/lib/orchestration/version.rb +1 -1
- data/orchestration.gemspec +19 -1
- metadata +241 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04c4bf8c7efdcf0b21359de761d23fef858c08bb856f11c84d28aff11901a08c
|
4
|
+
data.tar.gz: 63288ca1f09bb6527f683c67157b44b446d6ed7d0a0c04a84519c70ca05b5bd7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a338efc12f119888a068f675f465293fe2b1a1e1cc8e22d7cc78ce22f44d824ed09c989f0790ae59effdcd2eee59203e122c9577b34ab329fca44e98b87dca00
|
7
|
+
data.tar.gz: 302f228e2b1c44ba70453f744e3721b7efa2a61d982d7704274790bbeb38c8a16fa65d8205ec2e0d68b768dee434b1c80e58f24d157eda2c675e32ac10d79b31
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
data/Gemfile
CHANGED
@@ -6,21 +6,3 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
|
6
6
|
|
7
7
|
# Specify your gem's dependencies in orchestration.gemspec
|
8
8
|
gemspec
|
9
|
-
|
10
|
-
gem 'activerecord', '~> 6.0'
|
11
|
-
gem 'betterp', '~> 0.1.3'
|
12
|
-
gem 'bundler', '~> 1.16'
|
13
|
-
gem 'bunny', '~> 2.12'
|
14
|
-
gem 'byebug', '~> 10.0'
|
15
|
-
gem 'mongoid', '~> 7.0'
|
16
|
-
gem 'mysql2', '~> 0.5.2'
|
17
|
-
gem 'pg', '~> 1.1'
|
18
|
-
gem 'rails', '~> 6.0'
|
19
|
-
gem 'rake', '~> 10.0'
|
20
|
-
gem 'rspec', '~> 3.0'
|
21
|
-
gem 'rspec-its', '~> 1.2'
|
22
|
-
gem 'rubocop', '~> 0.77.0'
|
23
|
-
gem 'sqlite3', '~> 1.3'
|
24
|
-
gem 'strong_versions', '~> 0.3.1'
|
25
|
-
gem 'thor', '~> 1.0'
|
26
|
-
gem 'webmock', '~> 3.4'
|
data/README.md
CHANGED
@@ -35,7 +35,7 @@ The below screenshot demonstrates _Orchestration_ being installed in a brand new
|
|
35
35
|
Add _Orchestration_ to your Gemfile:
|
36
36
|
|
37
37
|
```ruby
|
38
|
-
gem 'orchestration', '~> 0.4.
|
38
|
+
gem 'orchestration', '~> 0.4.19'
|
39
39
|
```
|
40
40
|
|
41
41
|
Install:
|
@@ -185,6 +185,12 @@ To launch all dependency containers, run database migrations, and run tests:
|
|
185
185
|
make test
|
186
186
|
```
|
187
187
|
|
188
|
+
If you prefer to run tests manually (e.g. if you want to run tests for a specific file) then the `test-setup` target can be used:
|
189
|
+
```
|
190
|
+
make test-setup
|
191
|
+
bundle exec rspec spec/my_class_spec.rb
|
192
|
+
```
|
193
|
+
|
188
194
|
Note that _Orchestration_ will wait for all services to become fully available (i.e. running and providing valid responses) before attempting to run tests. This is specifically intended to facilitate testing in continuous integration environments.
|
189
195
|
|
190
196
|
_(See [sidecar containers](#sidecar-containers) if you are running your test/development server inside _Docker_)_.
|
@@ -99,23 +99,32 @@ module Orchestration
|
|
99
99
|
@terminal.write(:skip, relpath)
|
100
100
|
end
|
101
101
|
|
102
|
-
def ensure_line_in_file(path, line, echo: true)
|
103
|
-
return if line_in_file?(path, line)
|
102
|
+
def ensure_line_in_file(path, line, echo: true, regex: nil)
|
103
|
+
return if line_in_file?(path, line: line, regex: regex)
|
104
104
|
|
105
105
|
append_file(path, "\n#{line.chomp}\n", echo: echo)
|
106
106
|
true
|
107
107
|
end
|
108
108
|
|
109
|
-
def line_in_file?(path, line)
|
109
|
+
def line_in_file?(path, line: nil, regex: nil)
|
110
110
|
return false unless File.exist?(path)
|
111
|
+
return regex_in_file?(path, regex) unless regex.nil?
|
111
112
|
|
112
113
|
File.readlines(path).map(&:chomp).include?(line.chomp)
|
113
114
|
end
|
114
115
|
|
116
|
+
def regex_in_file?(path, regex)
|
117
|
+
File.readlines(path).map(&:chomp).any? { |line| regex.match(line) }
|
118
|
+
end
|
119
|
+
|
115
120
|
def templates_path
|
116
121
|
Orchestration.root.join('lib', 'orchestration', 'templates')
|
117
122
|
end
|
118
123
|
|
124
|
+
def gemfile_path
|
125
|
+
@env.root.join('Gemfile')
|
126
|
+
end
|
127
|
+
|
119
128
|
def read_template(template)
|
120
129
|
File.read(templates_path.join("#{template}.erb"))
|
121
130
|
end
|
@@ -87,6 +87,8 @@ module Orchestration
|
|
87
87
|
content = template('unicorn.rb')
|
88
88
|
path = @env.root.join('config', 'unicorn.rb')
|
89
89
|
create_file(path, content, backup: true)
|
90
|
+
regex = /gem\s+['"]unicorn['"]/
|
91
|
+
ensure_line_in_file(gemfile_path, "gem 'unicorn'", regex: regex)
|
90
92
|
end
|
91
93
|
|
92
94
|
def database_yml
|
@@ -49,24 +49,28 @@ else
|
|
49
49
|
project_base := $(project_name)
|
50
50
|
endif
|
51
51
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
ifdef sidecar
|
58
|
-
# Set the variable to an empty string so that "#{sidecar-1234}" will evaluate
|
59
|
-
# to "1234" in port mappings.
|
60
|
-
sidecar_compose = sidecar=''
|
61
|
-
ifeq (,${sidecar_suffix})
|
62
|
-
sidecar_suffix := $(call token)
|
63
|
-
_ignore := $(shell echo ${sidecar_suffix} > ${orchestration_dir}/.sidecar)
|
52
|
+
ifneq (,$(findstring deploy,$(MAKECMDGOALS)))
|
53
|
+
sidecar_suffix := $(shell test -f ${orchestration_dir}/.sidecar && cat ${orchestration_dir}/.sidecar)
|
54
|
+
ifneq (,${sidecar_suffix})
|
55
|
+
sidecar := 1
|
64
56
|
endif
|
65
57
|
|
66
|
-
|
67
|
-
|
58
|
+
ifdef sidecar
|
59
|
+
# Set the variable to an empty string so that "#{sidecar-1234}" will
|
60
|
+
# evaluate to "1234" in port mappings.
|
61
|
+
sidecar_compose = sidecar=''
|
62
|
+
ifeq (,${sidecar_suffix})
|
63
|
+
sidecar_suffix := $(call token)
|
64
|
+
_ignore := $(shell echo ${sidecar_suffix} > ${orchestration_dir}/.sidecar)
|
65
|
+
endif
|
66
|
+
|
67
|
+
ifeq (,${sidecar_suffix})
|
68
|
+
$(warning Unable to generate project suffix; project name collisions may occur.)
|
69
|
+
endif
|
70
|
+
compose_project_name = ${project_base}_${sidecar_suffix}
|
71
|
+
else
|
72
|
+
compose_project_name = ${project_base}
|
68
73
|
endif
|
69
|
-
compose_project_name = ${project_base}_${sidecar_suffix}
|
70
74
|
else
|
71
75
|
compose_project_name = ${project_base}
|
72
76
|
endif
|
@@ -133,7 +137,7 @@ start-<%= service %>:
|
|
133
137
|
|
134
138
|
.PHONY: stop
|
135
139
|
stop: network := ${compose_project_name}_default
|
136
|
-
stop:
|
140
|
+
stop:
|
137
141
|
@$(call print,'${yellow}Stopping containers${reset} ...')
|
138
142
|
@if docker ps --format "{{.ID}}" | grep -q $(shell hostname) ; \
|
139
143
|
then \
|
data/orchestration.gemspec
CHANGED
@@ -19,11 +19,29 @@ Gem::Specification.new do |spec|
|
|
19
19
|
File.readlines('MANIFEST').map(&:chomp)
|
20
20
|
end
|
21
21
|
spec.bindir = 'bin'
|
22
|
-
spec.executables =
|
22
|
+
spec.executables = []
|
23
23
|
spec.require_paths = ['lib']
|
24
24
|
|
25
25
|
spec.add_runtime_dependency 'database_url', '~> 0.1.2'
|
26
26
|
spec.add_runtime_dependency 'erubis', '~> 2.7'
|
27
27
|
spec.add_runtime_dependency 'i18n', '>= 0.5'
|
28
28
|
spec.add_runtime_dependency 'paint', '~> 2.0'
|
29
|
+
spec.add_runtime_dependency 'thor', '~> 1.0'
|
30
|
+
|
31
|
+
spec.add_development_dependency 'activerecord', '~> 6.0'
|
32
|
+
spec.add_development_dependency 'betterp', '~> 0.1.3'
|
33
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
34
|
+
spec.add_development_dependency 'bunny', '~> 2.12'
|
35
|
+
spec.add_development_dependency 'byebug', '~> 10.0'
|
36
|
+
spec.add_development_dependency 'mongoid', '~> 7.0'
|
37
|
+
spec.add_development_dependency 'mysql2', '~> 0.5.2'
|
38
|
+
spec.add_development_dependency 'pg', '~> 1.1'
|
39
|
+
spec.add_development_dependency 'rails', '~> 6.0'
|
40
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
41
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
42
|
+
spec.add_development_dependency 'rspec-its', '~> 1.2'
|
43
|
+
spec.add_development_dependency 'rubocop', '~> 0.77.0'
|
44
|
+
spec.add_development_dependency 'sqlite3', '~> 1.3'
|
45
|
+
spec.add_development_dependency 'strong_versions', '~> 0.3.1'
|
46
|
+
spec.add_development_dependency 'webmock', '~> 3.4'
|
29
47
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: orchestration
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.19
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bob Farrell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: database_url
|
@@ -66,15 +66,248 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '2.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: thor
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: activerecord
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '6.0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '6.0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: betterp
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.1.3
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.1.3
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: bundler
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.16'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.16'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: bunny
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.12'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2.12'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: byebug
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '10.0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '10.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: mongoid
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '7.0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '7.0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: mysql2
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 0.5.2
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 0.5.2
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: pg
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '1.1'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '1.1'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rails
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '6.0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '6.0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: rake
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '10.0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '10.0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: rspec
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '3.0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '3.0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: rspec-its
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - "~>"
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '1.2'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - "~>"
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '1.2'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: rubocop
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - "~>"
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: 0.77.0
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - "~>"
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: 0.77.0
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: sqlite3
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - "~>"
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '1.3'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - "~>"
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '1.3'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: strong_versions
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - "~>"
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: 0.3.1
|
286
|
+
type: :development
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - "~>"
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: 0.3.1
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: webmock
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - "~>"
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '3.4'
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - "~>"
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '3.4'
|
69
307
|
description: Tools to help launch apps in Docker
|
70
308
|
email:
|
71
309
|
- robertanthonyfarrell@gmail.com
|
72
|
-
executables:
|
73
|
-
- console
|
74
|
-
- rspec
|
75
|
-
- rubocop
|
76
|
-
- setup
|
77
|
-
- strong_versions
|
310
|
+
executables: []
|
78
311
|
extensions: []
|
79
312
|
extra_rdoc_files: []
|
80
313
|
files:
|