roo_on_rails 1.21.0 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +446 -150
  3. data/.circleci/config.yml.erb +63 -18
  4. data/.codecov.yml +3 -0
  5. data/Appraisals +17 -11
  6. data/CHANGELOG.md +38 -0
  7. data/README.md +23 -74
  8. data/appraise +1 -1
  9. data/exe/roo_on_rails +5 -0
  10. data/gemfiles/rails_4.gemfile +3 -1
  11. data/gemfiles/rails_5.gemfile +2 -1
  12. data/gemfiles/rails_5_1.gemfile +2 -1
  13. data/gemfiles/rails_5_2.gemfile +2 -1
  14. data/gemfiles/{rails_3.gemfile → rails_6.gemfile} +5 -4
  15. data/lib/roo_on_rails.rb +0 -3
  16. data/lib/roo_on_rails/checks/documentation/playbook_template.md +0 -4
  17. data/lib/roo_on_rails/concerns/require_api_key.rb +0 -1
  18. data/lib/roo_on_rails/config.rb +0 -8
  19. data/lib/roo_on_rails/default.env +0 -13
  20. data/lib/roo_on_rails/rack/populate_env_from_jwt.rb +26 -4
  21. data/lib/roo_on_rails/railties/database.rb +11 -10
  22. data/lib/roo_on_rails/railties/env.rb +3 -5
  23. data/lib/roo_on_rails/railties/google_oauth.rb +4 -6
  24. data/lib/roo_on_rails/railties/http.rb +34 -32
  25. data/lib/roo_on_rails/railties/roo_identity.rb +12 -8
  26. data/lib/roo_on_rails/railties/sidekiq_integration.rb +7 -19
  27. data/lib/roo_on_rails/version.rb +1 -1
  28. data/roo_on_rails.gemspec +4 -6
  29. metadata +24 -68
  30. data/.travis.yml +0 -34
  31. data/README.routemaster_client.md +0 -103
  32. data/lib/roo_on_rails/railties/logging.rb +0 -25
  33. data/lib/roo_on_rails/railties/new_relic.rb +0 -32
  34. data/lib/roo_on_rails/railties/routemaster.rb +0 -42
  35. data/lib/roo_on_rails/routemaster/lifecycle_events.rb +0 -64
  36. data/lib/roo_on_rails/routemaster/publish_lifecycle_events.rb +0 -13
  37. data/lib/roo_on_rails/routemaster/publisher.rb +0 -74
  38. data/lib/roo_on_rails/routemaster/publishers.rb +0 -27
  39. data/lib/roo_on_rails/tasks/newrelic.rake +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 04d813efb65227f43263c1802588635add6d27bb2a5c98c81c924ead208ef09d
4
- data.tar.gz: c91116b30b641039133e69dd4c85e02d7df6c24e16f25841d36064037facf420
2
+ SHA1:
3
+ metadata.gz: a4f7beb1235b80ea826919a641b7b44754702cda
4
+ data.tar.gz: 06aa080ac742fc3fb7a4154ea5c0311d3f67e70c
5
5
  SHA512:
6
- metadata.gz: 9f49df0cd62c25ee965d761888a244f195b45eecc6237eeadf12359410c0833628a4e2b6b2575ebc43d0ab75fc4d1a613b5d2ee6ccab2c70fbc5d5183fb81ad6
7
- data.tar.gz: 3a0fb95d6e34690932380b5a06de448bc12ba449b17988bd0ed8c0a641f42a09950780869d57019f2e6e49646d37a4180aaaeb1c417a608a20276eddc99a1e95
6
+ metadata.gz: f8afc738c99dc50e34e2e21acd8b531678a07c39d574352bcd8028df0defa0653ca3763b2480a8423e9711bfcb445bc68d2320fcfa5b11e94d5d591c6b7418a8
7
+ data.tar.gz: 43f9e982df0696736b88b8eb09ac73aaaec5b638163f777d04e6f832f408dbe0dd635391929c56466536747d985a4aca51507cb1d1f1f74717657f5b1e8da6a3
data/.circleci/config.yml CHANGED
@@ -1,16 +1,38 @@
1
1
  # To update the build configuration, edit the "builds" array below and run:
2
2
  # erb .circleci/config.yml.erb > .circleci/config.yml
3
3
 
4
+
5
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
6
+ # the CI since it makes it harder to run multiple apps in a single container
7
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
8
+ # Unsettting these variables restores the default behaviour:-
9
+ # * BUNDLE_APP_CONFIG
10
+ # * GEM_HOME
11
+ # * BUNDLE_PATH
12
+ # * BUNDLE_BIN
13
+ common_ruby_environment: &common_ruby_environment
14
+ environment:
15
+ RAILS_ENV: test
16
+ PGHOST: 127.0.0.1
17
+ PGUSER: postgres
18
+ POSTGRES_HOST_AUTH_METHOD: "trust"
19
+ common_pg_environment_vars: &common_pg_environment_vars
20
+ POSTGRES_USER: postgres
21
+ POSTGRES_DB: ror_testapp_test
22
+ POSTGRES_HOST_AUTH_METHOD: "trust"
23
+
4
24
  version: 2
5
25
  jobs:
6
26
 
7
- build_2.3.4_rails_3:
27
+ build_2.4.6_rails_4:
8
28
  docker:
9
- - image: deliveroo/multiruby
29
+ - image: ruby:2.4.6-alpine
30
+ <<: *common_ruby_environment
10
31
  - image: postgres:9.6-alpine
11
32
  environment:
12
33
  PGDATA: /dev/shm/pgdata
13
- - image: redis:3-alpine
34
+ <<: *common_pg_environment_vars
35
+ - image: redis:4-alpine
14
36
  steps:
15
37
  - checkout
16
38
 
@@ -22,53 +44,77 @@ jobs:
22
44
  ln -s /dev/shm/tmp ~/project/tmp
23
45
 
24
46
  - run:
25
- name: Select build variant (Ruby 2.3.4, rails_3)
47
+ name: Setup requirements
48
+ command: |
49
+ apk add --update git bash build-base postgresql-dev sqlite-dev tzdata nodejs
50
+
51
+ - run:
52
+ name: Configure bundler
26
53
  command: |
27
- rbenv local 2.3.4 ;
28
- gem install bundler ;
29
- bundle config --local gemfile $PWD/gemfiles/rails_3.gemfile
54
+ unset \
55
+ BUNDLE_APP_CONFIG \
56
+ GEM_HOME \
57
+ BUNDLE_PATH \
58
+ BUNDLE_BIN
59
+ bundle config --local gemfile $PWD/gemfiles/rails_4.gemfile
30
60
 
31
61
  - restore_cache:
32
- keys:
33
- - v2-bundle-2.3.4-rails_3-{{ .Branch }}
34
- - v2-bundle-2.3.4-rails_3
35
- - v2-bundle-2.3.4
62
+ keys:
63
+ - v2-bundle-2.4.6-rails_4-{{ .Branch }}
64
+ - v2-bundle-2.4.6-rails_4
65
+ - v2-bundle-2.4.6
36
66
 
37
- - run:
38
- name: Install dependencies
67
+ - run:
68
+ name: Install bundle
39
69
  command: |
70
+ unset \
71
+ BUNDLE_APP_CONFIG \
72
+ GEM_HOME \
73
+ BUNDLE_PATH \
74
+ BUNDLE_BIN
40
75
  bundle install --jobs=3 --retry=3 --path=$PWD/vendor/bundle
41
76
 
77
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
78
+ # the CI since it makes it harder to run multiple apps in a single container
79
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
80
+ # Unsettting the variables restores the default behaviour
42
81
  - run:
43
82
  name: Run test suite
44
83
  command: |
45
- unset RACK_ENV &&
46
- unset RAILS_ENV &&
84
+ unset \
85
+ RACK_ENV \
86
+ RAILS_ENV \
87
+ BUNDLE_APP_CONFIG \
88
+ GEM_HOME \
89
+ BUNDLE_PATH \
90
+ BUNDLE_BIN
47
91
  bundle exec rspec
48
92
 
49
93
  - save_cache:
50
- key: v2-bundle-2.3.4-rails_3-{{ .Branch }}
94
+ key: v2-bundle-2.4.6-rails_4-{{ .Branch }}
51
95
  paths:
52
96
  - ~/project/vendor/bundle
53
97
  - ~/project/vendor/bundle-scaffold
54
98
  - save_cache:
55
- key: v2-bundle-2.3.4-rails_3
99
+ key: v2-bundle-2.4.6-rails_4
56
100
  paths:
57
101
  - ~/project/vendor/bundle
58
102
  - ~/project/vendor/bundle-scaffold
59
103
  - save_cache:
60
- key: v2-bundle-2.3.4
104
+ key: v2-bundle-2.4.6
61
105
  paths:
62
106
  - ~/project/vendor/bundle
63
107
  - ~/project/vendor/bundle-scaffold
64
108
 
65
- build_2.3.4_rails_4:
109
+ build_2.4.6_rails_5:
66
110
  docker:
67
- - image: deliveroo/multiruby
111
+ - image: ruby:2.4.6-alpine
112
+ <<: *common_ruby_environment
68
113
  - image: postgres:9.6-alpine
69
114
  environment:
70
115
  PGDATA: /dev/shm/pgdata
71
- - image: redis:3-alpine
116
+ <<: *common_pg_environment_vars
117
+ - image: redis:4-alpine
72
118
  steps:
73
119
  - checkout
74
120
 
@@ -80,53 +126,77 @@ jobs:
80
126
  ln -s /dev/shm/tmp ~/project/tmp
81
127
 
82
128
  - run:
83
- name: Select build variant (Ruby 2.3.4, rails_4)
129
+ name: Setup requirements
84
130
  command: |
85
- rbenv local 2.3.4 ;
86
- gem install bundler ;
87
- bundle config --local gemfile $PWD/gemfiles/rails_4.gemfile
131
+ apk add --update git bash build-base postgresql-dev sqlite-dev tzdata nodejs
132
+
133
+ - run:
134
+ name: Configure bundler
135
+ command: |
136
+ unset \
137
+ BUNDLE_APP_CONFIG \
138
+ GEM_HOME \
139
+ BUNDLE_PATH \
140
+ BUNDLE_BIN
141
+ bundle config --local gemfile $PWD/gemfiles/rails_5.gemfile
88
142
 
89
143
  - restore_cache:
90
- keys:
91
- - v2-bundle-2.3.4-rails_4-{{ .Branch }}
92
- - v2-bundle-2.3.4-rails_4
93
- - v2-bundle-2.3.4
144
+ keys:
145
+ - v2-bundle-2.4.6-rails_5-{{ .Branch }}
146
+ - v2-bundle-2.4.6-rails_5
147
+ - v2-bundle-2.4.6
94
148
 
95
- - run:
96
- name: Install dependencies
149
+ - run:
150
+ name: Install bundle
97
151
  command: |
152
+ unset \
153
+ BUNDLE_APP_CONFIG \
154
+ GEM_HOME \
155
+ BUNDLE_PATH \
156
+ BUNDLE_BIN
98
157
  bundle install --jobs=3 --retry=3 --path=$PWD/vendor/bundle
99
158
 
159
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
160
+ # the CI since it makes it harder to run multiple apps in a single container
161
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
162
+ # Unsettting the variables restores the default behaviour
100
163
  - run:
101
164
  name: Run test suite
102
165
  command: |
103
- unset RACK_ENV &&
104
- unset RAILS_ENV &&
166
+ unset \
167
+ RACK_ENV \
168
+ RAILS_ENV \
169
+ BUNDLE_APP_CONFIG \
170
+ GEM_HOME \
171
+ BUNDLE_PATH \
172
+ BUNDLE_BIN
105
173
  bundle exec rspec
106
174
 
107
175
  - save_cache:
108
- key: v2-bundle-2.3.4-rails_4-{{ .Branch }}
176
+ key: v2-bundle-2.4.6-rails_5-{{ .Branch }}
109
177
  paths:
110
178
  - ~/project/vendor/bundle
111
179
  - ~/project/vendor/bundle-scaffold
112
180
  - save_cache:
113
- key: v2-bundle-2.3.4-rails_4
181
+ key: v2-bundle-2.4.6-rails_5
114
182
  paths:
115
183
  - ~/project/vendor/bundle
116
184
  - ~/project/vendor/bundle-scaffold
117
185
  - save_cache:
118
- key: v2-bundle-2.3.4
186
+ key: v2-bundle-2.4.6
119
187
  paths:
120
188
  - ~/project/vendor/bundle
121
189
  - ~/project/vendor/bundle-scaffold
122
190
 
123
- build_2.4.1_rails_4:
191
+ build_2.4.6_rails_5_1:
124
192
  docker:
125
- - image: deliveroo/multiruby
193
+ - image: ruby:2.4.6-alpine
194
+ <<: *common_ruby_environment
126
195
  - image: postgres:9.6-alpine
127
196
  environment:
128
197
  PGDATA: /dev/shm/pgdata
129
- - image: redis:3-alpine
198
+ <<: *common_pg_environment_vars
199
+ - image: redis:4-alpine
130
200
  steps:
131
201
  - checkout
132
202
 
@@ -138,53 +208,77 @@ jobs:
138
208
  ln -s /dev/shm/tmp ~/project/tmp
139
209
 
140
210
  - run:
141
- name: Select build variant (Ruby 2.4.1, rails_4)
211
+ name: Setup requirements
142
212
  command: |
143
- rbenv local 2.4.1 ;
144
- gem install bundler ;
145
- bundle config --local gemfile $PWD/gemfiles/rails_4.gemfile
213
+ apk add --update git bash build-base postgresql-dev sqlite-dev tzdata nodejs
214
+
215
+ - run:
216
+ name: Configure bundler
217
+ command: |
218
+ unset \
219
+ BUNDLE_APP_CONFIG \
220
+ GEM_HOME \
221
+ BUNDLE_PATH \
222
+ BUNDLE_BIN
223
+ bundle config --local gemfile $PWD/gemfiles/rails_5_1.gemfile
146
224
 
147
225
  - restore_cache:
148
- keys:
149
- - v2-bundle-2.4.1-rails_4-{{ .Branch }}
150
- - v2-bundle-2.4.1-rails_4
151
- - v2-bundle-2.4.1
226
+ keys:
227
+ - v2-bundle-2.4.6-rails_5_1-{{ .Branch }}
228
+ - v2-bundle-2.4.6-rails_5_1
229
+ - v2-bundle-2.4.6
152
230
 
153
- - run:
154
- name: Install dependencies
231
+ - run:
232
+ name: Install bundle
155
233
  command: |
234
+ unset \
235
+ BUNDLE_APP_CONFIG \
236
+ GEM_HOME \
237
+ BUNDLE_PATH \
238
+ BUNDLE_BIN
156
239
  bundle install --jobs=3 --retry=3 --path=$PWD/vendor/bundle
157
240
 
241
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
242
+ # the CI since it makes it harder to run multiple apps in a single container
243
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
244
+ # Unsettting the variables restores the default behaviour
158
245
  - run:
159
246
  name: Run test suite
160
247
  command: |
161
- unset RACK_ENV &&
162
- unset RAILS_ENV &&
248
+ unset \
249
+ RACK_ENV \
250
+ RAILS_ENV \
251
+ BUNDLE_APP_CONFIG \
252
+ GEM_HOME \
253
+ BUNDLE_PATH \
254
+ BUNDLE_BIN
163
255
  bundle exec rspec
164
256
 
165
257
  - save_cache:
166
- key: v2-bundle-2.4.1-rails_4-{{ .Branch }}
258
+ key: v2-bundle-2.4.6-rails_5_1-{{ .Branch }}
167
259
  paths:
168
260
  - ~/project/vendor/bundle
169
261
  - ~/project/vendor/bundle-scaffold
170
262
  - save_cache:
171
- key: v2-bundle-2.4.1-rails_4
263
+ key: v2-bundle-2.4.6-rails_5_1
172
264
  paths:
173
265
  - ~/project/vendor/bundle
174
266
  - ~/project/vendor/bundle-scaffold
175
267
  - save_cache:
176
- key: v2-bundle-2.4.1
268
+ key: v2-bundle-2.4.6
177
269
  paths:
178
270
  - ~/project/vendor/bundle
179
271
  - ~/project/vendor/bundle-scaffold
180
272
 
181
- build_2.3.4_rails_5:
273
+ build_2.4.6_rails_5_2:
182
274
  docker:
183
- - image: deliveroo/multiruby
275
+ - image: ruby:2.4.6-alpine
276
+ <<: *common_ruby_environment
184
277
  - image: postgres:9.6-alpine
185
278
  environment:
186
279
  PGDATA: /dev/shm/pgdata
187
- - image: redis:3-alpine
280
+ <<: *common_pg_environment_vars
281
+ - image: redis:4-alpine
188
282
  steps:
189
283
  - checkout
190
284
 
@@ -196,53 +290,77 @@ jobs:
196
290
  ln -s /dev/shm/tmp ~/project/tmp
197
291
 
198
292
  - run:
199
- name: Select build variant (Ruby 2.3.4, rails_5)
293
+ name: Setup requirements
200
294
  command: |
201
- rbenv local 2.3.4 ;
202
- gem install bundler ;
203
- bundle config --local gemfile $PWD/gemfiles/rails_5.gemfile
295
+ apk add --update git bash build-base postgresql-dev sqlite-dev tzdata nodejs
296
+
297
+ - run:
298
+ name: Configure bundler
299
+ command: |
300
+ unset \
301
+ BUNDLE_APP_CONFIG \
302
+ GEM_HOME \
303
+ BUNDLE_PATH \
304
+ BUNDLE_BIN
305
+ bundle config --local gemfile $PWD/gemfiles/rails_5_2.gemfile
204
306
 
205
307
  - restore_cache:
206
- keys:
207
- - v2-bundle-2.3.4-rails_5-{{ .Branch }}
208
- - v2-bundle-2.3.4-rails_5
209
- - v2-bundle-2.3.4
308
+ keys:
309
+ - v2-bundle-2.4.6-rails_5_2-{{ .Branch }}
310
+ - v2-bundle-2.4.6-rails_5_2
311
+ - v2-bundle-2.4.6
210
312
 
211
- - run:
212
- name: Install dependencies
313
+ - run:
314
+ name: Install bundle
213
315
  command: |
316
+ unset \
317
+ BUNDLE_APP_CONFIG \
318
+ GEM_HOME \
319
+ BUNDLE_PATH \
320
+ BUNDLE_BIN
214
321
  bundle install --jobs=3 --retry=3 --path=$PWD/vendor/bundle
215
322
 
323
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
324
+ # the CI since it makes it harder to run multiple apps in a single container
325
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
326
+ # Unsettting the variables restores the default behaviour
216
327
  - run:
217
328
  name: Run test suite
218
329
  command: |
219
- unset RACK_ENV &&
220
- unset RAILS_ENV &&
330
+ unset \
331
+ RACK_ENV \
332
+ RAILS_ENV \
333
+ BUNDLE_APP_CONFIG \
334
+ GEM_HOME \
335
+ BUNDLE_PATH \
336
+ BUNDLE_BIN
221
337
  bundle exec rspec
222
338
 
223
339
  - save_cache:
224
- key: v2-bundle-2.3.4-rails_5-{{ .Branch }}
340
+ key: v2-bundle-2.4.6-rails_5_2-{{ .Branch }}
225
341
  paths:
226
342
  - ~/project/vendor/bundle
227
343
  - ~/project/vendor/bundle-scaffold
228
344
  - save_cache:
229
- key: v2-bundle-2.3.4-rails_5
345
+ key: v2-bundle-2.4.6-rails_5_2
230
346
  paths:
231
347
  - ~/project/vendor/bundle
232
348
  - ~/project/vendor/bundle-scaffold
233
349
  - save_cache:
234
- key: v2-bundle-2.3.4
350
+ key: v2-bundle-2.4.6
235
351
  paths:
236
352
  - ~/project/vendor/bundle
237
353
  - ~/project/vendor/bundle-scaffold
238
354
 
239
- build_2.4.1_rails_5:
355
+ build_2.5.5_rails_4:
240
356
  docker:
241
- - image: deliveroo/multiruby
357
+ - image: ruby:2.5.5-alpine
358
+ <<: *common_ruby_environment
242
359
  - image: postgres:9.6-alpine
243
360
  environment:
244
361
  PGDATA: /dev/shm/pgdata
245
- - image: redis:3-alpine
362
+ <<: *common_pg_environment_vars
363
+ - image: redis:4-alpine
246
364
  steps:
247
365
  - checkout
248
366
 
@@ -254,53 +372,77 @@ jobs:
254
372
  ln -s /dev/shm/tmp ~/project/tmp
255
373
 
256
374
  - run:
257
- name: Select build variant (Ruby 2.4.1, rails_5)
375
+ name: Setup requirements
258
376
  command: |
259
- rbenv local 2.4.1 ;
260
- gem install bundler ;
261
- bundle config --local gemfile $PWD/gemfiles/rails_5.gemfile
377
+ apk add --update git bash build-base postgresql-dev sqlite-dev tzdata nodejs
378
+
379
+ - run:
380
+ name: Configure bundler
381
+ command: |
382
+ unset \
383
+ BUNDLE_APP_CONFIG \
384
+ GEM_HOME \
385
+ BUNDLE_PATH \
386
+ BUNDLE_BIN
387
+ bundle config --local gemfile $PWD/gemfiles/rails_4.gemfile
262
388
 
263
389
  - restore_cache:
264
- keys:
265
- - v2-bundle-2.4.1-rails_5-{{ .Branch }}
266
- - v2-bundle-2.4.1-rails_5
267
- - v2-bundle-2.4.1
390
+ keys:
391
+ - v2-bundle-2.5.5-rails_4-{{ .Branch }}
392
+ - v2-bundle-2.5.5-rails_4
393
+ - v2-bundle-2.5.5
268
394
 
269
- - run:
270
- name: Install dependencies
395
+ - run:
396
+ name: Install bundle
271
397
  command: |
398
+ unset \
399
+ BUNDLE_APP_CONFIG \
400
+ GEM_HOME \
401
+ BUNDLE_PATH \
402
+ BUNDLE_BIN
272
403
  bundle install --jobs=3 --retry=3 --path=$PWD/vendor/bundle
273
404
 
405
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
406
+ # the CI since it makes it harder to run multiple apps in a single container
407
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
408
+ # Unsettting the variables restores the default behaviour
274
409
  - run:
275
410
  name: Run test suite
276
411
  command: |
277
- unset RACK_ENV &&
278
- unset RAILS_ENV &&
412
+ unset \
413
+ RACK_ENV \
414
+ RAILS_ENV \
415
+ BUNDLE_APP_CONFIG \
416
+ GEM_HOME \
417
+ BUNDLE_PATH \
418
+ BUNDLE_BIN
279
419
  bundle exec rspec
280
420
 
281
421
  - save_cache:
282
- key: v2-bundle-2.4.1-rails_5-{{ .Branch }}
422
+ key: v2-bundle-2.5.5-rails_4-{{ .Branch }}
283
423
  paths:
284
424
  - ~/project/vendor/bundle
285
425
  - ~/project/vendor/bundle-scaffold
286
426
  - save_cache:
287
- key: v2-bundle-2.4.1-rails_5
427
+ key: v2-bundle-2.5.5-rails_4
288
428
  paths:
289
429
  - ~/project/vendor/bundle
290
430
  - ~/project/vendor/bundle-scaffold
291
431
  - save_cache:
292
- key: v2-bundle-2.4.1
432
+ key: v2-bundle-2.5.5
293
433
  paths:
294
434
  - ~/project/vendor/bundle
295
435
  - ~/project/vendor/bundle-scaffold
296
436
 
297
- build_2.3.4_rails_5_1:
437
+ build_2.5.5_rails_5:
298
438
  docker:
299
- - image: deliveroo/multiruby
439
+ - image: ruby:2.5.5-alpine
440
+ <<: *common_ruby_environment
300
441
  - image: postgres:9.6-alpine
301
442
  environment:
302
443
  PGDATA: /dev/shm/pgdata
303
- - image: redis:3-alpine
444
+ <<: *common_pg_environment_vars
445
+ - image: redis:4-alpine
304
446
  steps:
305
447
  - checkout
306
448
 
@@ -312,53 +454,77 @@ jobs:
312
454
  ln -s /dev/shm/tmp ~/project/tmp
313
455
 
314
456
  - run:
315
- name: Select build variant (Ruby 2.3.4, rails_5_1)
457
+ name: Setup requirements
316
458
  command: |
317
- rbenv local 2.3.4 ;
318
- gem install bundler ;
319
- bundle config --local gemfile $PWD/gemfiles/rails_5_1.gemfile
459
+ apk add --update git bash build-base postgresql-dev sqlite-dev tzdata nodejs
460
+
461
+ - run:
462
+ name: Configure bundler
463
+ command: |
464
+ unset \
465
+ BUNDLE_APP_CONFIG \
466
+ GEM_HOME \
467
+ BUNDLE_PATH \
468
+ BUNDLE_BIN
469
+ bundle config --local gemfile $PWD/gemfiles/rails_5.gemfile
320
470
 
321
471
  - restore_cache:
322
- keys:
323
- - v2-bundle-2.3.4-rails_5_1-{{ .Branch }}
324
- - v2-bundle-2.3.4-rails_5_1
325
- - v2-bundle-2.3.4
472
+ keys:
473
+ - v2-bundle-2.5.5-rails_5-{{ .Branch }}
474
+ - v2-bundle-2.5.5-rails_5
475
+ - v2-bundle-2.5.5
326
476
 
327
- - run:
328
- name: Install dependencies
477
+ - run:
478
+ name: Install bundle
329
479
  command: |
480
+ unset \
481
+ BUNDLE_APP_CONFIG \
482
+ GEM_HOME \
483
+ BUNDLE_PATH \
484
+ BUNDLE_BIN
330
485
  bundle install --jobs=3 --retry=3 --path=$PWD/vendor/bundle
331
486
 
487
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
488
+ # the CI since it makes it harder to run multiple apps in a single container
489
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
490
+ # Unsettting the variables restores the default behaviour
332
491
  - run:
333
492
  name: Run test suite
334
493
  command: |
335
- unset RACK_ENV &&
336
- unset RAILS_ENV &&
494
+ unset \
495
+ RACK_ENV \
496
+ RAILS_ENV \
497
+ BUNDLE_APP_CONFIG \
498
+ GEM_HOME \
499
+ BUNDLE_PATH \
500
+ BUNDLE_BIN
337
501
  bundle exec rspec
338
502
 
339
503
  - save_cache:
340
- key: v2-bundle-2.3.4-rails_5_1-{{ .Branch }}
504
+ key: v2-bundle-2.5.5-rails_5-{{ .Branch }}
341
505
  paths:
342
506
  - ~/project/vendor/bundle
343
507
  - ~/project/vendor/bundle-scaffold
344
508
  - save_cache:
345
- key: v2-bundle-2.3.4-rails_5_1
509
+ key: v2-bundle-2.5.5-rails_5
346
510
  paths:
347
511
  - ~/project/vendor/bundle
348
512
  - ~/project/vendor/bundle-scaffold
349
513
  - save_cache:
350
- key: v2-bundle-2.3.4
514
+ key: v2-bundle-2.5.5
351
515
  paths:
352
516
  - ~/project/vendor/bundle
353
517
  - ~/project/vendor/bundle-scaffold
354
518
 
355
- build_2.4.1_rails_5_1:
519
+ build_2.5.5_rails_5_1:
356
520
  docker:
357
- - image: deliveroo/multiruby
521
+ - image: ruby:2.5.5-alpine
522
+ <<: *common_ruby_environment
358
523
  - image: postgres:9.6-alpine
359
524
  environment:
360
525
  PGDATA: /dev/shm/pgdata
361
- - image: redis:3-alpine
526
+ <<: *common_pg_environment_vars
527
+ - image: redis:4-alpine
362
528
  steps:
363
529
  - checkout
364
530
 
@@ -370,53 +536,77 @@ jobs:
370
536
  ln -s /dev/shm/tmp ~/project/tmp
371
537
 
372
538
  - run:
373
- name: Select build variant (Ruby 2.4.1, rails_5_1)
539
+ name: Setup requirements
540
+ command: |
541
+ apk add --update git bash build-base postgresql-dev sqlite-dev tzdata nodejs
542
+
543
+ - run:
544
+ name: Configure bundler
374
545
  command: |
375
- rbenv local 2.4.1 ;
376
- gem install bundler ;
546
+ unset \
547
+ BUNDLE_APP_CONFIG \
548
+ GEM_HOME \
549
+ BUNDLE_PATH \
550
+ BUNDLE_BIN
377
551
  bundle config --local gemfile $PWD/gemfiles/rails_5_1.gemfile
378
552
 
379
553
  - restore_cache:
380
- keys:
381
- - v2-bundle-2.4.1-rails_5_1-{{ .Branch }}
382
- - v2-bundle-2.4.1-rails_5_1
383
- - v2-bundle-2.4.1
554
+ keys:
555
+ - v2-bundle-2.5.5-rails_5_1-{{ .Branch }}
556
+ - v2-bundle-2.5.5-rails_5_1
557
+ - v2-bundle-2.5.5
384
558
 
385
- - run:
386
- name: Install dependencies
559
+ - run:
560
+ name: Install bundle
387
561
  command: |
562
+ unset \
563
+ BUNDLE_APP_CONFIG \
564
+ GEM_HOME \
565
+ BUNDLE_PATH \
566
+ BUNDLE_BIN
388
567
  bundle install --jobs=3 --retry=3 --path=$PWD/vendor/bundle
389
568
 
569
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
570
+ # the CI since it makes it harder to run multiple apps in a single container
571
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
572
+ # Unsettting the variables restores the default behaviour
390
573
  - run:
391
574
  name: Run test suite
392
575
  command: |
393
- unset RACK_ENV &&
394
- unset RAILS_ENV &&
576
+ unset \
577
+ RACK_ENV \
578
+ RAILS_ENV \
579
+ BUNDLE_APP_CONFIG \
580
+ GEM_HOME \
581
+ BUNDLE_PATH \
582
+ BUNDLE_BIN
395
583
  bundle exec rspec
396
584
 
397
585
  - save_cache:
398
- key: v2-bundle-2.4.1-rails_5_1-{{ .Branch }}
586
+ key: v2-bundle-2.5.5-rails_5_1-{{ .Branch }}
399
587
  paths:
400
588
  - ~/project/vendor/bundle
401
589
  - ~/project/vendor/bundle-scaffold
402
590
  - save_cache:
403
- key: v2-bundle-2.4.1-rails_5_1
591
+ key: v2-bundle-2.5.5-rails_5_1
404
592
  paths:
405
593
  - ~/project/vendor/bundle
406
594
  - ~/project/vendor/bundle-scaffold
407
595
  - save_cache:
408
- key: v2-bundle-2.4.1
596
+ key: v2-bundle-2.5.5
409
597
  paths:
410
598
  - ~/project/vendor/bundle
411
599
  - ~/project/vendor/bundle-scaffold
412
600
 
413
- build_2.4.1_rails_5_2:
601
+ build_2.5.5_rails_5_2:
414
602
  docker:
415
- - image: deliveroo/multiruby
603
+ - image: ruby:2.5.5-alpine
604
+ <<: *common_ruby_environment
416
605
  - image: postgres:9.6-alpine
417
606
  environment:
418
607
  PGDATA: /dev/shm/pgdata
419
- - image: redis:3-alpine
608
+ <<: *common_pg_environment_vars
609
+ - image: redis:4-alpine
420
610
  steps:
421
611
  - checkout
422
612
 
@@ -428,42 +618,146 @@ jobs:
428
618
  ln -s /dev/shm/tmp ~/project/tmp
429
619
 
430
620
  - run:
431
- name: Select build variant (Ruby 2.4.1, rails_5_2)
621
+ name: Setup requirements
432
622
  command: |
433
- rbenv local 2.4.1 ;
434
- gem install bundler ;
623
+ apk add --update git bash build-base postgresql-dev sqlite-dev tzdata nodejs
624
+
625
+ - run:
626
+ name: Configure bundler
627
+ command: |
628
+ unset \
629
+ BUNDLE_APP_CONFIG \
630
+ GEM_HOME \
631
+ BUNDLE_PATH \
632
+ BUNDLE_BIN
435
633
  bundle config --local gemfile $PWD/gemfiles/rails_5_2.gemfile
436
634
 
437
635
  - restore_cache:
438
- keys:
439
- - v2-bundle-2.4.1-rails_5_2-{{ .Branch }}
440
- - v2-bundle-2.4.1-rails_5_2
441
- - v2-bundle-2.4.1
636
+ keys:
637
+ - v2-bundle-2.5.5-rails_5_2-{{ .Branch }}
638
+ - v2-bundle-2.5.5-rails_5_2
639
+ - v2-bundle-2.5.5
640
+
641
+ - run:
642
+ name: Install bundle
643
+ command: |
644
+ unset \
645
+ BUNDLE_APP_CONFIG \
646
+ GEM_HOME \
647
+ BUNDLE_PATH \
648
+ BUNDLE_BIN
649
+ bundle install --jobs=3 --retry=3 --path=$PWD/vendor/bundle
650
+
651
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
652
+ # the CI since it makes it harder to run multiple apps in a single container
653
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
654
+ # Unsettting the variables restores the default behaviour
655
+ - run:
656
+ name: Run test suite
657
+ command: |
658
+ unset \
659
+ RACK_ENV \
660
+ RAILS_ENV \
661
+ BUNDLE_APP_CONFIG \
662
+ GEM_HOME \
663
+ BUNDLE_PATH \
664
+ BUNDLE_BIN
665
+ bundle exec rspec
666
+
667
+ - save_cache:
668
+ key: v2-bundle-2.5.5-rails_5_2-{{ .Branch }}
669
+ paths:
670
+ - ~/project/vendor/bundle
671
+ - ~/project/vendor/bundle-scaffold
672
+ - save_cache:
673
+ key: v2-bundle-2.5.5-rails_5_2
674
+ paths:
675
+ - ~/project/vendor/bundle
676
+ - ~/project/vendor/bundle-scaffold
677
+ - save_cache:
678
+ key: v2-bundle-2.5.5
679
+ paths:
680
+ - ~/project/vendor/bundle
681
+ - ~/project/vendor/bundle-scaffold
682
+
683
+ build_2.6.5_rails_6:
684
+ docker:
685
+ - image: ruby:2.6.5-alpine
686
+ <<: *common_ruby_environment
687
+ - image: postgres:9.6-alpine
688
+ environment:
689
+ PGDATA: /dev/shm/pgdata
690
+ <<: *common_pg_environment_vars
691
+ - image: redis:4-alpine
692
+ steps:
693
+ - checkout
694
+
695
+ - run:
696
+ name: Setup RAM disk
697
+ command: |
698
+ rm -rf ~/project/tmp ;
699
+ mkdir /dev/shm/tmp ;
700
+ ln -s /dev/shm/tmp ~/project/tmp
701
+
702
+ - run:
703
+ name: Setup requirements
704
+ command: |
705
+ apk add --update git bash build-base postgresql-dev sqlite-dev tzdata nodejs
706
+
707
+ - run:
708
+ name: Configure bundler
709
+ command: |
710
+ unset \
711
+ BUNDLE_APP_CONFIG \
712
+ GEM_HOME \
713
+ BUNDLE_PATH \
714
+ BUNDLE_BIN
715
+ bundle config --local gemfile $PWD/gemfiles/rails_6.gemfile
716
+
717
+ - restore_cache:
718
+ keys:
719
+ - v2-bundle-2.6.5-rails_6-{{ .Branch }}
720
+ - v2-bundle-2.6.5-rails_6
721
+ - v2-bundle-2.6.5
442
722
 
443
- - run:
444
- name: Install dependencies
723
+ - run:
724
+ name: Install bundle
445
725
  command: |
726
+ unset \
727
+ BUNDLE_APP_CONFIG \
728
+ GEM_HOME \
729
+ BUNDLE_PATH \
730
+ BUNDLE_BIN
446
731
  bundle install --jobs=3 --retry=3 --path=$PWD/vendor/bundle
447
732
 
733
+ # The default Ruby containers modify the behaviour of Bundler in a way that breaks
734
+ # the CI since it makes it harder to run multiple apps in a single container
735
+ # See https://github.com/docker-library/docs/pull/1221/files for a summary
736
+ # Unsettting the variables restores the default behaviour
448
737
  - run:
449
738
  name: Run test suite
450
739
  command: |
451
- unset RACK_ENV &&
452
- unset RAILS_ENV &&
740
+ unset \
741
+ RACK_ENV \
742
+ RAILS_ENV \
743
+ BUNDLE_APP_CONFIG \
744
+ GEM_HOME \
745
+ BUNDLE_PATH \
746
+ BUNDLE_BIN
453
747
  bundle exec rspec
454
748
 
455
749
  - save_cache:
456
- key: v2-bundle-2.4.1-rails_5_2-{{ .Branch }}
750
+ key: v2-bundle-2.6.5-rails_6-{{ .Branch }}
457
751
  paths:
458
752
  - ~/project/vendor/bundle
459
753
  - ~/project/vendor/bundle-scaffold
460
754
  - save_cache:
461
- key: v2-bundle-2.4.1-rails_5_2
755
+ key: v2-bundle-2.6.5-rails_6
462
756
  paths:
463
757
  - ~/project/vendor/bundle
464
758
  - ~/project/vendor/bundle-scaffold
465
759
  - save_cache:
466
- key: v2-bundle-2.4.1
760
+ key: v2-bundle-2.6.5
467
761
  paths:
468
762
  - ~/project/vendor/bundle
469
763
  - ~/project/vendor/bundle-scaffold
@@ -474,19 +768,21 @@ workflows:
474
768
  test:
475
769
  jobs:
476
770
 
477
- - build_2.3.4_rails_3
771
+ - build_2.4.6_rails_4
772
+
773
+ - build_2.4.6_rails_5
478
774
 
479
- - build_2.3.4_rails_4
775
+ - build_2.4.6_rails_5_1
480
776
 
481
- - build_2.4.1_rails_4
777
+ - build_2.4.6_rails_5_2
482
778
 
483
- - build_2.3.4_rails_5
779
+ - build_2.5.5_rails_4
484
780
 
485
- - build_2.4.1_rails_5
781
+ - build_2.5.5_rails_5
486
782
 
487
- - build_2.3.4_rails_5_1
783
+ - build_2.5.5_rails_5_1
488
784
 
489
- - build_2.4.1_rails_5_1
785
+ - build_2.5.5_rails_5_2
490
786
 
491
- - build_2.4.1_rails_5_2
787
+ - build_2.6.5_rails_6
492
788