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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08fca47f0273e73914f4c193051888311774c6528c050dceee40e4d8353c6e61'
4
- data.tar.gz: 60cd871dcf3db083486ec995975fc2a11b0429690e52bb42271576a4b6fd9795
3
+ metadata.gz: 04c4bf8c7efdcf0b21359de761d23fef858c08bb856f11c84d28aff11901a08c
4
+ data.tar.gz: 63288ca1f09bb6527f683c67157b44b446d6ed7d0a0c04a84519c70ca05b5bd7
5
5
  SHA512:
6
- metadata.gz: e5146caceb7ad9e3a267864bf9b1e642902ad75ca2d1bacd4c2cc8f3ae961095079b41a34fc8d2e8fe492c701d59e0a91441e031be4d36fa421c0aa9c8a3380b
7
- data.tar.gz: bab2849a365ee3c43596d158164e2adc0ba7d9c6ec7e1933a9be43d13e05882cbafab5f8f0e44f4219ed5620f2502866bd3a92788066a695325d0241cba6d7ce
6
+ metadata.gz: a338efc12f119888a068f675f465293fe2b1a1e1cc8e22d7cc78ce22f44d824ed09c989f0790ae59effdcd2eee59203e122c9577b34ab329fca44e98b87dca00
7
+ data.tar.gz: 302f228e2b1c44ba70453f744e3721b7efa2a61d982d7704274790bbeb38c8a16fa65d8205ec2e0d68b768dee434b1c80e58f24d157eda2c675e32ac10d79b31
data/.gitignore CHANGED
@@ -17,6 +17,7 @@ Gemfile.lock
17
17
  spec/dummy/log/*
18
18
  !spec/dummy/log/.keep
19
19
  spec/dummy/.gitignore
20
+ spec/dummy/Gemfile
20
21
  spec/dummy/Makefile
21
22
  spec/dummy/orchestration/*
22
23
  spec/dummy/config/unicorn.rb
data/.rubocop.yml CHANGED
@@ -6,6 +6,11 @@ Metrics/BlockLength:
6
6
  - 'spec/**/*'
7
7
  - '*.gemspec'
8
8
  - 'lib/tasks/orchestration.rake'
9
+ - 'spec/**/*'
10
+
11
+ Metrics/ModuleLength:
12
+ Exclude:
13
+ - 'lib/orchestration/file_helpers.rb'
9
14
 
10
15
  AllCops:
11
16
  Exclude:
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.18'
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
- sidecar_suffix := $(shell test -f ${orchestration_dir}/.sidecar && cat ${orchestration_dir}/.sidecar)
53
- ifneq (,${sidecar_suffix})
54
- sidecar := 1
55
- endif
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
- ifeq (,${sidecar_suffix})
67
- $(warning Unable to generate project suffix; project name collisions may occur.)
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: _clean-logs
140
+ stop:
137
141
  @$(call print,'${yellow}Stopping containers${reset} ...')
138
142
  @if docker ps --format "{{.ID}}" | grep -q $(shell hostname) ; \
139
143
  then \
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Orchestration
4
- VERSION = '0.4.18'
4
+ VERSION = '0.4.19'
5
5
  end
@@ -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 = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
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.18
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: 2019-12-24 00:00:00.000000000 Z
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: