ddtrace 0.12.0 → 0.13.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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +468 -0
  3. data/.circleci/images/primary/Dockerfile-1.9.3 +69 -0
  4. data/.circleci/images/primary/Dockerfile-2.0.0 +69 -0
  5. data/.circleci/images/primary/Dockerfile-2.1.10 +69 -0
  6. data/.circleci/images/primary/Dockerfile-2.2.10 +69 -0
  7. data/.circleci/images/primary/Dockerfile-2.3.7 +73 -0
  8. data/.circleci/images/primary/Dockerfile-2.4.4 +73 -0
  9. data/.dockerignore +1 -0
  10. data/.env +21 -11
  11. data/.gitignore +1 -1
  12. data/.rubocop.yml +4 -1
  13. data/Appraisals +471 -66
  14. data/CHANGELOG.md +80 -2
  15. data/Rakefile +304 -80
  16. data/ddtrace.gemspec +7 -7
  17. data/docker-compose.yml +240 -37
  18. data/docs/GettingStarted.md +273 -7
  19. data/lib/ddtrace/configuration.rb +2 -2
  20. data/lib/ddtrace/contrib/active_model_serializers/event.rb +57 -0
  21. data/lib/ddtrace/contrib/active_model_serializers/events/render.rb +32 -0
  22. data/lib/ddtrace/contrib/active_model_serializers/events/serialize.rb +35 -0
  23. data/lib/ddtrace/contrib/active_model_serializers/events.rb +30 -0
  24. data/lib/ddtrace/contrib/active_model_serializers/patcher.rb +62 -0
  25. data/lib/ddtrace/contrib/active_record/event.rb +30 -0
  26. data/lib/ddtrace/contrib/active_record/events/instantiation.rb +51 -0
  27. data/lib/ddtrace/contrib/active_record/events/sql.rb +48 -0
  28. data/lib/ddtrace/contrib/active_record/events.rb +30 -0
  29. data/lib/ddtrace/contrib/active_record/patcher.rb +3 -73
  30. data/lib/ddtrace/contrib/active_record/utils.rb +1 -15
  31. data/lib/ddtrace/contrib/active_support/notifications/event.rb +62 -0
  32. data/lib/ddtrace/contrib/aws/instrumentation.rb +2 -2
  33. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +2 -2
  34. data/lib/ddtrace/contrib/elasticsearch/quantize.rb +18 -49
  35. data/lib/ddtrace/contrib/excon/middleware.rb +139 -0
  36. data/lib/ddtrace/contrib/excon/patcher.rb +50 -0
  37. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +49 -0
  38. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +66 -0
  39. data/lib/ddtrace/contrib/grpc/datadog_interceptor.rb +65 -0
  40. data/lib/ddtrace/contrib/grpc/intercept_with_datadog.rb +49 -0
  41. data/lib/ddtrace/contrib/grpc/patcher.rb +62 -0
  42. data/lib/ddtrace/contrib/http/patcher.rb +18 -16
  43. data/lib/ddtrace/contrib/mongodb/parsers.rb +24 -13
  44. data/lib/ddtrace/contrib/mongodb/patcher.rb +1 -0
  45. data/lib/ddtrace/contrib/mongodb/subscribers.rb +5 -4
  46. data/lib/ddtrace/contrib/mysql2/client.rb +60 -0
  47. data/lib/ddtrace/contrib/mysql2/patcher.rb +43 -0
  48. data/lib/ddtrace/contrib/racecar/event.rb +61 -0
  49. data/lib/ddtrace/contrib/racecar/events/batch.rb +27 -0
  50. data/lib/ddtrace/contrib/racecar/events/message.rb +27 -0
  51. data/lib/ddtrace/contrib/racecar/events.rb +30 -0
  52. data/lib/ddtrace/contrib/racecar/patcher.rb +6 -52
  53. data/lib/ddtrace/contrib/rack/middlewares.rb +65 -11
  54. data/lib/ddtrace/contrib/rack/patcher.rb +16 -0
  55. data/lib/ddtrace/contrib/rack/request_queue.rb +34 -0
  56. data/lib/ddtrace/contrib/rails/action_controller_patch.rb +77 -0
  57. data/lib/ddtrace/contrib/rails/action_view.rb +0 -65
  58. data/lib/ddtrace/contrib/rails/active_support.rb +9 -8
  59. data/lib/ddtrace/contrib/rails/core_extensions.rb +74 -115
  60. data/lib/ddtrace/contrib/rake/instrumentation.rb +70 -0
  61. data/lib/ddtrace/contrib/rake/patcher.rb +53 -0
  62. data/lib/ddtrace/contrib/sequel/database.rb +58 -0
  63. data/lib/ddtrace/contrib/sequel/dataset.rb +59 -0
  64. data/lib/ddtrace/contrib/sequel/patcher.rb +56 -0
  65. data/lib/ddtrace/contrib/sequel/utils.rb +28 -0
  66. data/lib/ddtrace/contrib/sidekiq/tracer.rb +1 -0
  67. data/lib/ddtrace/contrib/sinatra/env.rb +39 -0
  68. data/lib/ddtrace/contrib/sinatra/headers.rb +31 -0
  69. data/lib/ddtrace/contrib/sinatra/tracer.rb +21 -38
  70. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +61 -0
  71. data/lib/ddtrace/ext/distributed.rb +5 -0
  72. data/lib/ddtrace/ext/grpc.rb +7 -0
  73. data/lib/ddtrace/ext/http.rb +35 -5
  74. data/lib/ddtrace/propagation/grpc_propagator.rb +54 -0
  75. data/lib/ddtrace/quantization/hash.rb +103 -0
  76. data/lib/ddtrace/tracer.rb +4 -1
  77. data/lib/ddtrace/utils/database.rb +21 -0
  78. data/lib/ddtrace/utils.rb +12 -2
  79. data/lib/ddtrace/version.rb +1 -1
  80. data/lib/ddtrace.rb +7 -0
  81. metadata +50 -21
  82. data/circle.yml +0 -69
  83. data/gemfiles/contrib.gemfile +0 -25
  84. data/gemfiles/contrib_old.gemfile +0 -23
  85. data/gemfiles/rails30_postgres.gemfile +0 -11
  86. data/gemfiles/rails30_postgres_sidekiq.gemfile +0 -12
  87. data/gemfiles/rails32_mysql2.gemfile +0 -12
  88. data/gemfiles/rails32_postgres.gemfile +0 -11
  89. data/gemfiles/rails32_postgres_redis.gemfile +0 -13
  90. data/gemfiles/rails32_postgres_sidekiq.gemfile +0 -12
  91. data/gemfiles/rails4_mysql2.gemfile +0 -10
  92. data/gemfiles/rails4_postgres.gemfile +0 -10
  93. data/gemfiles/rails4_postgres_redis.gemfile +0 -12
  94. data/gemfiles/rails4_postgres_sidekiq.gemfile +0 -12
  95. data/gemfiles/rails5_mysql2.gemfile +0 -9
  96. data/gemfiles/rails5_postgres.gemfile +0 -9
  97. data/gemfiles/rails5_postgres_redis.gemfile +0 -11
  98. data/gemfiles/rails5_postgres_sidekiq.gemfile +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed9e1360ddbe75df4f11570139cc00f400c18071
4
- data.tar.gz: 913743d057209630997ba59f724e1daab5a596dd
3
+ metadata.gz: 8a89641ee85dac608c0c2a580dfd413c47505ffa
4
+ data.tar.gz: 4cff7490665c4e954cb82466e0e77eacdf9bce99
5
5
  SHA512:
6
- metadata.gz: 19746053111cb07270b7a8e09f59064f85f50d47be4d083a2e31dad8c7ce0b973e1706b74ae4fb71795f0d21edfe8a740f5cab5fbff097967d94be92844ed9bd
7
- data.tar.gz: 2588e88b3bdf175079518fc14cdc58501b54f9d49a313ab5c19291ec02d86a84e3c10fa7870cc1050c640c89f89afa14c7c8692ae8debb4d57f03f3f83a7da19
6
+ metadata.gz: 8580fbbf837c16cbbcfc4652bed1455796f4f710c47042c93f913eb5a1df9b95e7cf400f0fa15b573f9f9eb86468c37da73add7dc5cb00dfc41035f36a136772
7
+ data.tar.gz: e0c4b207097f1efbee93a08150c5a2ed32a9352f8a82531f2d5432396fc698726909896250b1f0e01ee3786743832cd7fa092135bbf83f98eede9d515736546c
@@ -0,0 +1,468 @@
1
+ # Common variables, containers, jobs and steps.
2
+ job_defaults: &job_defaults
3
+ working_directory: /app
4
+ shell: /bin/bash --login
5
+
6
+ ruby_containers: &ruby_containers
7
+ - &container-1_9
8
+ image: datadog/docker-library:ddtrace_rb_1_9_3
9
+ environment:
10
+ - BUNDLE_GEMFILE=/app/Gemfile
11
+ - &container-2_0
12
+ image: datadog/docker-library:ddtrace_rb_2_0_0
13
+ environment:
14
+ - BUNDLE_GEMFILE=/app/Gemfile
15
+ - &container-2_1
16
+ image: datadog/docker-library:ddtrace_rb_2_1_10
17
+ environment:
18
+ - BUNDLE_GEMFILE=/app/Gemfile
19
+ - &container-2_2
20
+ image: datadog/docker-library:ddtrace_rb_2_2_10
21
+ environment:
22
+ - BUNDLE_GEMFILE=/app/Gemfile
23
+ - &container-2_3
24
+ image: datadog/docker-library:ddtrace_rb_2_3_7
25
+ environment:
26
+ - BUNDLE_GEMFILE=/app/Gemfile
27
+ - &container-2_4
28
+ image: datadog/docker-library:ddtrace_rb_2_4_4
29
+ environment:
30
+ - BUNDLE_GEMFILE=/app/Gemfile
31
+
32
+ test_containers: &test_containers
33
+ - &container_postgres
34
+ image: postgres:9.6
35
+ environment:
36
+ - POSTGRES_PASSWORD=postgres
37
+ - POSTGRES_USER=postgres
38
+ - POSTGRES_DB=postgres
39
+ - &container_mysql
40
+ image: mysql:5.6
41
+ environment:
42
+ - MYSQL_ROOT_PASSWORD=root
43
+ - MYSQL_PASSWORD=mysql
44
+ - MYSQL_USER=mysql
45
+ - &container_elasticsearch
46
+ image: elasticsearch:2.4
47
+ - &container_redis
48
+ image: redis:3.0
49
+ - &container_mongo
50
+ image: mongo:3.5
51
+ - &container_memcached
52
+ image: memcached:1.5-alpine
53
+ - &container_agent
54
+ image: datadog/docker-dd-agent
55
+ environment:
56
+ - DD_APM_ENABLED=true
57
+ - DD_BIND_HOST=0.0.0.0
58
+ - DD_API_KEY=invalid_key_but_this_is_fine
59
+
60
+ step_init_bundle_checksum: &step_init_bundle_checksum
61
+ run:
62
+ name: Initialize bundle cache key
63
+ command: |
64
+ touch .circleci/bundle_checksum
65
+ step_bundle_install: &step_bundle_install
66
+ run:
67
+ name: Install gem dependencies
68
+ command: bundle install
69
+ step_rubocop: &step_rubocop
70
+ run:
71
+ name: Delint with Rubocop
72
+ command: bundle exec rake rubocop
73
+ step_appraisal_install: &step_appraisal_install
74
+ run:
75
+ name: Install Appraisal gems
76
+ command: bundle exec appraisal install
77
+ step_compute_bundle_checksum: &step_compute_bundle_checksum
78
+ run:
79
+ name: Compute bundle checksum
80
+ command: |
81
+ cat Gemfile.lock gemfiles/*.gemfile.lock > .circleci/bundle_checksum
82
+ step_run_all_tests: &step_run_all_tests
83
+ run:
84
+ name: Run tests
85
+ command: bundle exec rake ci
86
+
87
+ version: 2.0
88
+ jobs:
89
+ checkout-1.9:
90
+ <<: *job_defaults
91
+ docker:
92
+ - *container-1_9
93
+ steps:
94
+ - checkout
95
+ - save_cache:
96
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-1.9-{{ .Environment.CIRCLE_SHA1 }}'
97
+ paths:
98
+ - /app
99
+ build-1.9:
100
+ <<: *job_defaults
101
+ docker:
102
+ - *container-1_9
103
+ steps:
104
+ - restore_cache:
105
+ keys:
106
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-1.9-{{ .Environment.CIRCLE_SHA1 }}'
107
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-1.9-{{ .Environment.CIRCLE_SHA1 }}'
108
+ - *step_init_bundle_checksum
109
+ - restore_cache:
110
+ keys:
111
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-1.9-{{ checksum ".circleci/bundle_checksum" }}'
112
+ - *step_bundle_install
113
+ - *step_appraisal_install
114
+ - *step_compute_bundle_checksum
115
+ - save_cache:
116
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-1.9-{{ .Environment.CIRCLE_SHA1 }}'
117
+ paths:
118
+ - /app
119
+ - save_cache:
120
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-1.9-{{ checksum ".circleci/bundle_checksum" }}'
121
+ paths:
122
+ - /usr/local/bundle
123
+ test-1.9:
124
+ <<: *job_defaults
125
+ docker:
126
+ - <<: *container-1_9
127
+ environment:
128
+ - TEST_DATADOG_INTEGRATION: 1
129
+ - *container_postgres
130
+ - *container_mysql
131
+ - *container_elasticsearch
132
+ - *container_redis
133
+ - *container_mongo
134
+ - *container_memcached
135
+ - *container_agent
136
+ steps:
137
+ - restore_cache:
138
+ keys:
139
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-1.9-{{ .Environment.CIRCLE_SHA1 }}'
140
+ - restore_cache:
141
+ keys:
142
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-1.9-{{ checksum ".circleci/bundle_checksum" }}'
143
+ - *step_run_all_tests
144
+ checkout-2.0:
145
+ <<: *job_defaults
146
+ docker:
147
+ - *container-2_0
148
+ steps:
149
+ - checkout
150
+ - save_cache:
151
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.0-{{ .Environment.CIRCLE_SHA1 }}'
152
+ paths:
153
+ - /app
154
+ build-2.0:
155
+ <<: *job_defaults
156
+ docker:
157
+ - *container-2_0
158
+ steps:
159
+ - restore_cache:
160
+ keys:
161
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.0-{{ .Environment.CIRCLE_SHA1 }}'
162
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.0-{{ .Environment.CIRCLE_SHA1 }}'
163
+ - *step_init_bundle_checksum
164
+ - restore_cache:
165
+ keys:
166
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.0-{{ checksum ".circleci/bundle_checksum" }}'
167
+ - *step_bundle_install
168
+ - *step_appraisal_install
169
+ - *step_compute_bundle_checksum
170
+ - save_cache:
171
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.0-{{ .Environment.CIRCLE_SHA1 }}'
172
+ paths:
173
+ - /app
174
+ - save_cache:
175
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.0-{{ checksum ".circleci/bundle_checksum" }}'
176
+ paths:
177
+ - /usr/local/bundle
178
+ test-2.0:
179
+ <<: *job_defaults
180
+ docker:
181
+ - <<: *container-2_0
182
+ environment:
183
+ - TEST_DATADOG_INTEGRATION: 1
184
+ - *container_postgres
185
+ - *container_mysql
186
+ - *container_elasticsearch
187
+ - *container_redis
188
+ - *container_mongo
189
+ - *container_memcached
190
+ - *container_agent
191
+ steps:
192
+ - restore_cache:
193
+ keys:
194
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.0-{{ .Environment.CIRCLE_SHA1 }}'
195
+ - restore_cache:
196
+ keys:
197
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.0-{{ checksum ".circleci/bundle_checksum" }}'
198
+ - *step_run_all_tests
199
+ checkout-2.1:
200
+ <<: *job_defaults
201
+ docker:
202
+ - *container-2_1
203
+ steps:
204
+ - checkout
205
+ - save_cache:
206
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.1-{{ .Environment.CIRCLE_SHA1 }}'
207
+ paths:
208
+ - /app
209
+ build-2.1:
210
+ <<: *job_defaults
211
+ docker:
212
+ - *container-2_1
213
+ steps:
214
+ - restore_cache:
215
+ keys:
216
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.1-{{ .Environment.CIRCLE_SHA1 }}'
217
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.1-{{ .Environment.CIRCLE_SHA1 }}'
218
+ - *step_init_bundle_checksum
219
+ - restore_cache:
220
+ keys:
221
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.1-{{ checksum ".circleci/bundle_checksum" }}'
222
+ - *step_bundle_install
223
+ - *step_rubocop
224
+ - *step_appraisal_install
225
+ - *step_compute_bundle_checksum
226
+ - save_cache:
227
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.1-{{ .Environment.CIRCLE_SHA1 }}'
228
+ paths:
229
+ - /app
230
+ - save_cache:
231
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.1-{{ checksum ".circleci/bundle_checksum" }}'
232
+ paths:
233
+ - /usr/local/bundle
234
+ test-2.1:
235
+ <<: *job_defaults
236
+ docker:
237
+ - <<: *container-2_1
238
+ environment:
239
+ - TEST_DATADOG_INTEGRATION: 1
240
+ - *container_postgres
241
+ - *container_mysql
242
+ - *container_elasticsearch
243
+ - *container_redis
244
+ - *container_mongo
245
+ - *container_memcached
246
+ - *container_agent
247
+ steps:
248
+ - restore_cache:
249
+ keys:
250
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.1-{{ .Environment.CIRCLE_SHA1 }}'
251
+ - restore_cache:
252
+ keys:
253
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.1-{{ checksum ".circleci/bundle_checksum" }}'
254
+ - *step_run_all_tests
255
+ checkout-2.2:
256
+ <<: *job_defaults
257
+ docker:
258
+ - *container-2_2
259
+ steps:
260
+ - checkout
261
+ - save_cache:
262
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.2-{{ .Environment.CIRCLE_SHA1 }}'
263
+ paths:
264
+ - /app
265
+ build-2.2:
266
+ <<: *job_defaults
267
+ docker:
268
+ - *container-2_2
269
+ steps:
270
+ - restore_cache:
271
+ keys:
272
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.2-{{ .Environment.CIRCLE_SHA1 }}'
273
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.2-{{ .Environment.CIRCLE_SHA1 }}'
274
+ - *step_init_bundle_checksum
275
+ - restore_cache:
276
+ keys:
277
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.2-{{ checksum ".circleci/bundle_checksum" }}'
278
+ - *step_bundle_install
279
+ - *step_rubocop
280
+ - *step_appraisal_install
281
+ - *step_compute_bundle_checksum
282
+ - save_cache:
283
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.2-{{ .Environment.CIRCLE_SHA1 }}'
284
+ paths:
285
+ - /app
286
+ - save_cache:
287
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.2-{{ checksum ".circleci/bundle_checksum" }}'
288
+ paths:
289
+ - /usr/local/bundle
290
+ test-2.2:
291
+ <<: *job_defaults
292
+ docker:
293
+ - <<: *container-2_2
294
+ environment:
295
+ - TEST_DATADOG_INTEGRATION: 1
296
+ - *container_postgres
297
+ - *container_mysql
298
+ - *container_elasticsearch
299
+ - *container_redis
300
+ - *container_mongo
301
+ - *container_memcached
302
+ - *container_agent
303
+ steps:
304
+ - restore_cache:
305
+ keys:
306
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.2-{{ .Environment.CIRCLE_SHA1 }}'
307
+ - restore_cache:
308
+ keys:
309
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.2-{{ checksum ".circleci/bundle_checksum" }}'
310
+ - *step_run_all_tests
311
+ checkout-2.3:
312
+ <<: *job_defaults
313
+ docker:
314
+ - *container-2_3
315
+ steps:
316
+ - checkout
317
+ - save_cache:
318
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.3-{{ .Environment.CIRCLE_SHA1 }}'
319
+ paths:
320
+ - /app
321
+ build-2.3:
322
+ <<: *job_defaults
323
+ docker:
324
+ - *container-2_3
325
+ steps:
326
+ - restore_cache:
327
+ keys:
328
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.3-{{ .Environment.CIRCLE_SHA1 }}'
329
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.3-{{ .Environment.CIRCLE_SHA1 }}'
330
+ - *step_init_bundle_checksum
331
+ - restore_cache:
332
+ keys:
333
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.3-{{ checksum ".circleci/bundle_checksum" }}'
334
+ - *step_bundle_install
335
+ - *step_rubocop
336
+ - *step_appraisal_install
337
+ - *step_compute_bundle_checksum
338
+ - save_cache:
339
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.3-{{ .Environment.CIRCLE_SHA1 }}'
340
+ paths:
341
+ - /app
342
+ - save_cache:
343
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.3-{{ checksum ".circleci/bundle_checksum" }}'
344
+ paths:
345
+ - /usr/local/bundle
346
+ test-2.3:
347
+ <<: *job_defaults
348
+ docker:
349
+ - <<: *container-2_3
350
+ environment:
351
+ - TEST_DATADOG_INTEGRATION: 1
352
+ - *container_postgres
353
+ - *container_mysql
354
+ - *container_elasticsearch
355
+ - *container_redis
356
+ - *container_mongo
357
+ - *container_memcached
358
+ - *container_agent
359
+ steps:
360
+ - restore_cache:
361
+ keys:
362
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.3-{{ .Environment.CIRCLE_SHA1 }}'
363
+ - restore_cache:
364
+ keys:
365
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.3-{{ checksum ".circleci/bundle_checksum" }}'
366
+ - *step_run_all_tests
367
+ checkout-2.4:
368
+ <<: *job_defaults
369
+ docker:
370
+ - *container-2_4
371
+ steps:
372
+ - checkout
373
+ - save_cache:
374
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
375
+ paths:
376
+ - /app
377
+ build-2.4:
378
+ <<: *job_defaults
379
+ docker:
380
+ - *container-2_4
381
+ steps:
382
+ - restore_cache:
383
+ keys:
384
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
385
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
386
+ - *step_init_bundle_checksum
387
+ - restore_cache:
388
+ keys:
389
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.4-{{ checksum ".circleci/bundle_checksum" }}'
390
+ - *step_bundle_install
391
+ - *step_rubocop
392
+ - *step_appraisal_install
393
+ - *step_compute_bundle_checksum
394
+ - save_cache:
395
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
396
+ paths:
397
+ - /app
398
+ - save_cache:
399
+ key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.4-{{ checksum ".circleci/bundle_checksum" }}'
400
+ paths:
401
+ - /usr/local/bundle
402
+ test-2.4:
403
+ <<: *job_defaults
404
+ docker:
405
+ - <<: *container-2_4
406
+ environment:
407
+ - TEST_DATADOG_INTEGRATION: 1
408
+ - *container_postgres
409
+ - *container_mysql
410
+ - *container_elasticsearch
411
+ - *container_redis
412
+ - *container_mongo
413
+ - *container_memcached
414
+ - *container_agent
415
+ steps:
416
+ - restore_cache:
417
+ keys:
418
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-2.4-{{ .Environment.CIRCLE_SHA1 }}'
419
+ - restore_cache:
420
+ keys:
421
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-2.4-{{ checksum ".circleci/bundle_checksum" }}'
422
+ - *step_run_all_tests
423
+ workflows:
424
+ version: 2
425
+ build-and-test:
426
+ jobs:
427
+ - checkout-1.9
428
+ - build-1.9:
429
+ requires:
430
+ - checkout-1.9
431
+ - test-1.9:
432
+ requires:
433
+ - build-1.9
434
+ - checkout-2.0
435
+ - build-2.0:
436
+ requires:
437
+ - checkout-2.0
438
+ - test-2.0:
439
+ requires:
440
+ - build-2.0
441
+ - checkout-2.1
442
+ - build-2.1:
443
+ requires:
444
+ - checkout-2.1
445
+ - test-2.1:
446
+ requires:
447
+ - build-2.1
448
+ - checkout-2.2
449
+ - build-2.2:
450
+ requires:
451
+ - checkout-2.2
452
+ - test-2.2:
453
+ requires:
454
+ - build-2.2
455
+ - checkout-2.3
456
+ - build-2.3:
457
+ requires:
458
+ - checkout-2.3
459
+ - test-2.3:
460
+ requires:
461
+ - build-2.3
462
+ - checkout-2.4
463
+ - build-2.4:
464
+ requires:
465
+ - checkout-2.4
466
+ - test-2.4:
467
+ requires:
468
+ - build-2.4
@@ -0,0 +1,69 @@
1
+ # Last version: https://github.com/docker-library/ruby/blob/90c4e3be58d565007c518d311d4bd05086a1638c/1.9/Dockerfile
2
+ FROM ruby:1.9.3
3
+
4
+ # Make apt non-interactive
5
+ RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
+ && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
+
8
+ ENV DEBIAN_FRONTEND=noninteractive
9
+
10
+ # Install required packages
11
+ RUN set -ex; \
12
+ apt-get update; \
13
+ mkdir -p /usr/share/man/man1; \
14
+ apt-get install -y --no-install-recommends \
15
+ git mercurial xvfb \
16
+ locales sudo openssh-client ca-certificates tar gzip parallel \
17
+ net-tools netcat unzip zip bzip2 gnupg curl wget \
18
+ tzdata rsync vim; \
19
+ rm -rf /var/lib/apt/lists/*;
20
+
21
+ # Set timezone to UTC by default
22
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
+
24
+ # Set language
25
+ RUN locale-gen en_US.UTF-8
26
+ ENV LANG en_US.UTF-8
27
+ ENV LANGUAGE en_US:en
28
+
29
+ # Install jq
30
+ RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
+ && chmod +x /usr/bin/jq \
33
+ && jq --version
34
+
35
+ # Install Docker
36
+ RUN set -ex \
37
+ && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
+ && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
+ && echo Docker URL: $DOCKER_URL \
40
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
+ && ls -lha /tmp/docker.tgz \
42
+ && tar -xz -C /tmp -f /tmp/docker.tgz \
43
+ && mv /tmp/docker/* /usr/bin \
44
+ && rm -rf /tmp/docker /tmp/docker.tgz \
45
+ && which docker \
46
+ && (docker version || true)
47
+
48
+ # Install Docker Compose
49
+ RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
+ && chmod +x /usr/bin/docker-compose \
52
+ && docker-compose version
53
+
54
+ # Install Dockerize
55
+ RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
+ && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
+ && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
+ && dockerize --version
60
+
61
+ # Install RubyGems
62
+ RUN gem update --system
63
+ RUN gem install bundler
64
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
65
+
66
+ RUN mkdir /app
67
+ WORKDIR /app
68
+
69
+ CMD ["/bin/sh"]
@@ -0,0 +1,69 @@
1
+ # Last version: https://github.com/docker-library/ruby/blob/c387c6c3a2505060514e31c247cb37d22c944e55/2.0/Dockerfile
2
+ FROM ruby:2.0.0
3
+
4
+ # Make apt non-interactive
5
+ RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
+ && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
+
8
+ ENV DEBIAN_FRONTEND=noninteractive
9
+
10
+ # Install required packages
11
+ RUN set -ex; \
12
+ apt-get update; \
13
+ mkdir -p /usr/share/man/man1; \
14
+ apt-get install -y --no-install-recommends \
15
+ git mercurial xvfb \
16
+ locales sudo openssh-client ca-certificates tar gzip parallel \
17
+ net-tools netcat unzip zip bzip2 gnupg curl wget \
18
+ tzdata rsync vim; \
19
+ rm -rf /var/lib/apt/lists/*;
20
+
21
+ # Set timezone to UTC by default
22
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
+
24
+ # Set language
25
+ RUN locale-gen en_US.UTF-8
26
+ ENV LANG en_US.UTF-8
27
+ ENV LANGUAGE en_US:en
28
+
29
+ # Install jq
30
+ RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
+ && chmod +x /usr/bin/jq \
33
+ && jq --version
34
+
35
+ # Install Docker
36
+ RUN set -ex \
37
+ && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
+ && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
+ && echo Docker URL: $DOCKER_URL \
40
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
+ && ls -lha /tmp/docker.tgz \
42
+ && tar -xz -C /tmp -f /tmp/docker.tgz \
43
+ && mv /tmp/docker/* /usr/bin \
44
+ && rm -rf /tmp/docker /tmp/docker.tgz \
45
+ && which docker \
46
+ && (docker version || true)
47
+
48
+ # Install Docker Compose
49
+ RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
+ && chmod +x /usr/bin/docker-compose \
52
+ && docker-compose version
53
+
54
+ # Install Dockerize
55
+ RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
+ && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
+ && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
+ && dockerize --version
60
+
61
+ # Install RubyGems
62
+ RUN gem update --system
63
+ RUN gem install bundler
64
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
65
+
66
+ RUN mkdir /app
67
+ WORKDIR /app
68
+
69
+ CMD ["/bin/sh"]
@@ -0,0 +1,69 @@
1
+ # Last version: https://github.com/docker-library/ruby/blob/99def14400fcd612782367830836dfcbc10c8c50/2.1/Dockerfile
2
+ FROM ruby:2.1.10
3
+
4
+ # Make apt non-interactive
5
+ RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
6
+ && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci
7
+
8
+ ENV DEBIAN_FRONTEND=noninteractive
9
+
10
+ # Install required packages
11
+ RUN set -ex; \
12
+ apt-get update; \
13
+ mkdir -p /usr/share/man/man1; \
14
+ apt-get install -y --no-install-recommends \
15
+ git mercurial xvfb \
16
+ locales sudo openssh-client ca-certificates tar gzip parallel \
17
+ net-tools netcat unzip zip bzip2 gnupg curl wget \
18
+ tzdata rsync vim; \
19
+ rm -rf /var/lib/apt/lists/*;
20
+
21
+ # Set timezone to UTC by default
22
+ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
23
+
24
+ # Set language
25
+ RUN locale-gen en_US.UTF-8
26
+ ENV LANG en_US.UTF-8
27
+ ENV LANGUAGE en_US:en
28
+
29
+ # Install jq
30
+ RUN JQ_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/jq-latest" \
31
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/jq $JQ_URL \
32
+ && chmod +x /usr/bin/jq \
33
+ && jq --version
34
+
35
+ # Install Docker
36
+ RUN set -ex \
37
+ && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/x86_64/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \
38
+ && DOCKER_URL="https://download.docker.com/linux/static/stable/x86_64/${DOCKER_VERSION}" \
39
+ && echo Docker URL: $DOCKER_URL \
40
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \
41
+ && ls -lha /tmp/docker.tgz \
42
+ && tar -xz -C /tmp -f /tmp/docker.tgz \
43
+ && mv /tmp/docker/* /usr/bin \
44
+ && rm -rf /tmp/docker /tmp/docker.tgz \
45
+ && which docker \
46
+ && (docker version || true)
47
+
48
+ # Install Docker Compose
49
+ RUN COMPOSE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/docker-compose-latest" \
50
+ && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \
51
+ && chmod +x /usr/bin/docker-compose \
52
+ && docker-compose version
53
+
54
+ # Install Dockerize
55
+ RUN DOCKERIZE_URL="https://circle-downloads.s3.amazonaws.com/circleci-images/cache/linux-amd64/dockerize-latest.tar.gz" \
56
+ && curl --silent --show-error --location --fail --retry 3 --output /tmp/dockerize-linux-amd64.tar.gz $DOCKERIZE_URL \
57
+ && tar -C /usr/local/bin -xzvf /tmp/dockerize-linux-amd64.tar.gz \
58
+ && rm -rf /tmp/dockerize-linux-amd64.tar.gz \
59
+ && dockerize --version
60
+
61
+ # Install RubyGems
62
+ RUN gem update --system
63
+ RUN gem install bundler
64
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
65
+
66
+ RUN mkdir /app
67
+ WORKDIR /app
68
+
69
+ CMD ["/bin/sh"]