ddtrace 0.39.0 → 0.44.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 (146) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +142 -115
  3. data/.circleci/images/primary/Dockerfile-3.0.0 +73 -0
  4. data/.github/workflows/add-milestone-to-pull-requests.yml +42 -0
  5. data/.github/workflows/create-next-milestone.yml +20 -0
  6. data/.gitlab-ci.yml +1 -0
  7. data/.simplecov +41 -0
  8. data/Appraisals +476 -120
  9. data/CHANGELOG.md +1115 -325
  10. data/CONTRIBUTING.md +2 -2
  11. data/Gemfile +4 -2
  12. data/Rakefile +665 -477
  13. data/ddtrace.gemspec +8 -8
  14. data/docker-compose.yml +30 -0
  15. data/docs/DevelopmentGuide.md +28 -2
  16. data/docs/GettingStarted.md +170 -41
  17. data/lib/ddtrace.rb +4 -0
  18. data/lib/ddtrace/buffer.rb +259 -52
  19. data/lib/ddtrace/configuration.rb +55 -5
  20. data/lib/ddtrace/configuration/components.rb +4 -7
  21. data/lib/ddtrace/configuration/options.rb +3 -1
  22. data/lib/ddtrace/configuration/settings.rb +9 -3
  23. data/lib/ddtrace/context.rb +18 -0
  24. data/lib/ddtrace/context_provider.rb +17 -5
  25. data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -7
  26. data/lib/ddtrace/contrib/action_view/event.rb +0 -4
  27. data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
  28. data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
  29. data/lib/ddtrace/contrib/active_record/events/sql.rb +4 -0
  30. data/lib/ddtrace/contrib/active_record/utils.rb +11 -1
  31. data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +104 -3
  32. data/lib/ddtrace/contrib/active_support/cache/patcher.rb +21 -0
  33. data/lib/ddtrace/contrib/active_support/ext.rb +3 -0
  34. data/lib/ddtrace/contrib/active_support/notifications/event.rb +10 -0
  35. data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +2 -2
  36. data/lib/ddtrace/contrib/aws/instrumentation.rb +6 -1
  37. data/lib/ddtrace/contrib/aws/patcher.rb +0 -1
  38. data/lib/ddtrace/contrib/aws/services.rb +1 -0
  39. data/lib/ddtrace/contrib/configurable.rb +2 -0
  40. data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +6 -5
  41. data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +38 -0
  42. data/lib/ddtrace/contrib/cucumber/ext.rb +19 -0
  43. data/lib/ddtrace/contrib/cucumber/formatter.rb +104 -0
  44. data/lib/ddtrace/contrib/cucumber/instrumentation.rb +24 -0
  45. data/lib/ddtrace/contrib/cucumber/integration.rb +40 -0
  46. data/lib/ddtrace/contrib/cucumber/patcher.rb +23 -0
  47. data/lib/ddtrace/contrib/dalli/instrumentation.rb +4 -0
  48. data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +2 -0
  49. data/lib/ddtrace/contrib/delayed_job/ext.rb +2 -0
  50. data/lib/ddtrace/contrib/delayed_job/plugin.rb +39 -15
  51. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +4 -0
  52. data/lib/ddtrace/contrib/ethon/easy_patch.rb +5 -3
  53. data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
  54. data/lib/ddtrace/contrib/ethon/multi_patch.rb +4 -0
  55. data/lib/ddtrace/contrib/excon/middleware.rb +11 -1
  56. data/lib/ddtrace/contrib/faraday/middleware.rb +4 -0
  57. data/lib/ddtrace/contrib/faraday/patcher.rb +1 -1
  58. data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -0
  59. data/lib/ddtrace/contrib/grape/endpoint.rb +53 -18
  60. data/lib/ddtrace/contrib/grape/ext.rb +1 -0
  61. data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +5 -1
  62. data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +4 -0
  63. data/lib/ddtrace/contrib/http/instrumentation.rb +6 -2
  64. data/lib/ddtrace/contrib/httprb/instrumentation.rb +6 -3
  65. data/lib/ddtrace/contrib/kafka/event.rb +1 -1
  66. data/lib/ddtrace/contrib/mongodb/subscribers.rb +4 -0
  67. data/lib/ddtrace/contrib/mysql2/instrumentation.rb +4 -0
  68. data/lib/ddtrace/contrib/presto/instrumentation.rb +3 -0
  69. data/lib/ddtrace/contrib/qless/configuration/settings.rb +35 -0
  70. data/lib/ddtrace/contrib/qless/ext.rb +20 -0
  71. data/lib/ddtrace/contrib/qless/integration.rb +38 -0
  72. data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
  73. data/lib/ddtrace/contrib/qless/qless_job.rb +72 -0
  74. data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +32 -0
  75. data/lib/ddtrace/contrib/que/configuration/settings.rb +43 -0
  76. data/lib/ddtrace/contrib/que/ext.rb +30 -0
  77. data/lib/ddtrace/contrib/que/integration.rb +42 -0
  78. data/lib/ddtrace/contrib/que/patcher.rb +24 -0
  79. data/lib/ddtrace/contrib/que/tracer.rb +57 -0
  80. data/lib/ddtrace/contrib/racecar/event.rb +4 -0
  81. data/lib/ddtrace/contrib/racecar/events.rb +2 -0
  82. data/lib/ddtrace/contrib/racecar/events/consume.rb +27 -0
  83. data/lib/ddtrace/contrib/racecar/ext.rb +1 -0
  84. data/lib/ddtrace/contrib/rack/middlewares.rb +2 -0
  85. data/lib/ddtrace/contrib/rails/configuration/settings.rb +5 -0
  86. data/lib/ddtrace/contrib/rails/ext.rb +1 -0
  87. data/lib/ddtrace/contrib/rails/log_injection.rb +81 -0
  88. data/lib/ddtrace/contrib/rails/middlewares.rb +7 -2
  89. data/lib/ddtrace/contrib/rails/patcher.rb +29 -0
  90. data/lib/ddtrace/contrib/redis/configuration/resolver.rb +3 -1
  91. data/lib/ddtrace/contrib/redis/configuration/settings.rb +5 -0
  92. data/lib/ddtrace/contrib/redis/ext.rb +1 -0
  93. data/lib/ddtrace/contrib/redis/patcher.rb +20 -3
  94. data/lib/ddtrace/contrib/redis/quantize.rb +27 -0
  95. data/lib/ddtrace/contrib/redis/tags.rb +9 -1
  96. data/lib/ddtrace/contrib/resque/configuration/settings.rb +1 -0
  97. data/lib/ddtrace/contrib/resque/integration.rb +1 -1
  98. data/lib/ddtrace/contrib/resque/resque_job.rb +1 -1
  99. data/lib/ddtrace/contrib/rest_client/request_patch.rb +4 -0
  100. data/lib/ddtrace/contrib/rspec/configuration/settings.rb +38 -0
  101. data/lib/ddtrace/contrib/rspec/example.rb +61 -0
  102. data/lib/ddtrace/contrib/rspec/example_group.rb +61 -0
  103. data/lib/ddtrace/contrib/rspec/ext.rb +19 -0
  104. data/lib/ddtrace/contrib/rspec/integration.rb +41 -0
  105. data/lib/ddtrace/contrib/rspec/patcher.rb +25 -0
  106. data/lib/ddtrace/contrib/sequel/database.rb +3 -1
  107. data/lib/ddtrace/contrib/sequel/dataset.rb +3 -2
  108. data/lib/ddtrace/contrib/sequel/ext.rb +1 -0
  109. data/lib/ddtrace/contrib/sequel/utils.rb +16 -5
  110. data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
  111. data/lib/ddtrace/contrib/shoryuken/tracer.rb +4 -1
  112. data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +1 -0
  113. data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +4 -1
  114. data/lib/ddtrace/contrib/sinatra/env.rb +5 -4
  115. data/lib/ddtrace/contrib/sinatra/tracer.rb +21 -42
  116. data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +50 -23
  117. data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +1 -0
  118. data/lib/ddtrace/contrib/sneakers/tracer.rb +17 -20
  119. data/lib/ddtrace/contrib/status_code_matcher.rb +67 -0
  120. data/lib/ddtrace/ext/app_types.rb +1 -0
  121. data/lib/ddtrace/ext/ci.rb +264 -0
  122. data/lib/ddtrace/ext/distributed.rb +8 -2
  123. data/lib/ddtrace/ext/git.rb +12 -0
  124. data/lib/ddtrace/ext/integration.rb +8 -0
  125. data/lib/ddtrace/ext/runtime.rb +2 -0
  126. data/lib/ddtrace/ext/test.rb +24 -0
  127. data/lib/ddtrace/opentracer/distributed_headers.rb +1 -1
  128. data/lib/ddtrace/propagation/grpc_propagator.rb +18 -6
  129. data/lib/ddtrace/runtime/identity.rb +4 -5
  130. data/lib/ddtrace/runtime/metrics.rb +6 -2
  131. data/lib/ddtrace/sampler.rb +2 -2
  132. data/lib/ddtrace/sampling/rate_limiter.rb +65 -16
  133. data/lib/ddtrace/span.rb +152 -27
  134. data/lib/ddtrace/tracer.rb +25 -13
  135. data/lib/ddtrace/transport/http/adapters/net.rb +8 -2
  136. data/lib/ddtrace/transport/http/statistics.rb +14 -1
  137. data/lib/ddtrace/transport/traces.rb +7 -2
  138. data/lib/ddtrace/utils.rb +16 -13
  139. data/lib/ddtrace/utils/forking.rb +52 -0
  140. data/lib/ddtrace/version.rb +1 -1
  141. data/lib/ddtrace/workers/async.rb +2 -2
  142. data/lib/ddtrace/workers/loop.rb +1 -1
  143. data/lib/ddtrace/workers/polling.rb +1 -1
  144. data/lib/ddtrace/workers/runtime_metrics.rb +7 -3
  145. data/lib/ddtrace/writer.rb +19 -1
  146. metadata +147 -42
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: dabe2325911d2a18a25e4b4e09f07bd0c132e68725b455f2313742ddceaff878
4
- data.tar.gz: c3e395ea4faba49b4220842eb89f3aaac353bbf2d30d286b382d1b59f17b248f
3
+ metadata.gz: 9bab61fb7855f2281cbaa808536cc7f7f6fe857657c49f91b532e6780c05187f
4
+ data.tar.gz: 463065e1f917522e19b2ace842cf117bfaf747b2e41e2bae405073080cf6f077
5
5
  SHA512:
6
- metadata.gz: 0bcecad99a9d2ee23ac3b57ff7f82724837bdcdebaaae3fb6014367b06d36d990aaabd7c8284da08f20970d47b15852aa011b3e94821472e53371f6b419d5cbd
7
- data.tar.gz: 9c64c7a12a16524b388d62534765799041f6c9466272042184703b6a1776e2f3dcb489a04e7edbc96b1d8c78ede8855067488f1ae9ab824ea29293c18bf4e626
6
+ metadata.gz: 688c0fb395d61cb53609eb872f32eba8337c810d7d83d4751822e31487a34cf5322284f025b512bc3e7251369406b77467754aecf327403dcf0128fcfebbdfc6
7
+ data.tar.gz: a484ea8f729a3736209c8182ea729e7e2f9475eff4742d366f1824b8d50bf78ebd92d0eb4afbf0c6fc01e2bedcb0e553d11c246e2cbcfd299d64819e64902d99
@@ -2,13 +2,41 @@ version: 2.1
2
2
 
3
3
  # Common variables, containers, jobs and steps.
4
4
  job_defaults: &job_defaults
5
+ # TODO: We should move away from using a directory
6
+ # TODO: that requires root permission to be created.
7
+ # TODO: Changing this requires rebuilding all docker images.
5
8
  working_directory: /app
6
9
  shell: /bin/bash --login
7
10
 
8
11
  test_containers:
12
+ - &job_parameters
13
+ parameters:
14
+ ruby_version:
15
+ description: Ruby version
16
+ type: string
17
+ image:
18
+ description: Docker image location
19
+ type: string
20
+ jit:
21
+ description: Jit enabled?
22
+ type: boolean
23
+ default: false
24
+ - &container_base_environment
25
+ BUNDLE_GEMFILE: /app/Gemfile
26
+ - &container_parameters_environment
27
+ - *container_base_environment
28
+ - RUBY_OPT: <<# parameters.jit >>--jit<</ parameters.jit >>
29
+ - TEST_DATADOG_INTEGRATION: 1
30
+ - COVERAGE_BASE_DIR: coverage
9
31
  - &container_base
32
+ image: <<parameters.image>>
10
33
  environment:
11
- - BUNDLE_GEMFILE=/app/Gemfile
34
+ *container_parameters_environment
35
+ - &test_job_default
36
+ <<: *job_defaults
37
+ <<: *job_parameters
38
+ docker:
39
+ - *container_base
12
40
  - &container_postgres
13
41
  image: postgres:9.6
14
42
  environment:
@@ -88,41 +116,13 @@ filters_only_release_tags: &filters_only_release_tags
88
116
  orbs:
89
117
  orb:
90
118
  jobs:
91
- checkout:
92
- <<: *job_defaults
93
- parameters:
94
- ruby_version:
95
- description: Ruby version
96
- type: string
97
- image:
98
- description: Docker image location
99
- type: string
100
- docker:
101
- - <<: *container_base
102
- image: <<parameters.image>>
103
- steps:
104
- - checkout
105
- - save_cache:
106
- key: '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
107
- paths:
108
- - /app
109
119
  build:
110
- <<: *job_defaults
111
- parameters:
112
- ruby_version:
113
- description: Ruby version
114
- type: string
115
- image:
116
- description: Docker image location
117
- type: string
118
- docker:
119
- - <<: *container_base
120
- image: <<parameters.image>>
120
+ <<: *test_job_default
121
121
  steps:
122
+ - checkout
122
123
  - restore_cache:
123
124
  keys:
124
125
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
125
- - '{{ .Environment.CIRCLE_CACHE_VERSION }}-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
126
126
  - restore_cache:
127
127
  keys:
128
128
  - bundle-{{ .Environment.CIRCLE_CACHE_VERSION }}-<<parameters.ruby_version>>-{{ checksum "lib/ddtrace/version.rb" }}-{{ .Branch }}-{{ checksum "Gemfile" }}-{{ checksum "Appraisals" }}-{{ checksum "ddtrace.gemspec" }}
@@ -148,20 +148,9 @@ orbs:
148
148
  paths:
149
149
  - /usr/local/bundle
150
150
  test:
151
- <<: *job_defaults
152
- parameters:
153
- ruby_version:
154
- description: Ruby version
155
- type: string
156
- image:
157
- description: Docker image location
158
- type: string
151
+ <<: *test_job_default
159
152
  docker:
160
153
  - <<: *container_base
161
- image: <<parameters.image>>
162
- environment:
163
- - BUNDLE_GEMFILE: /app/Gemfile
164
- - TEST_DATADOG_INTEGRATION: 1
165
154
  - *container_postgres
166
155
  - *container_presto
167
156
  - *container_mysql
@@ -170,6 +159,7 @@ orbs:
170
159
  - *container_mongo
171
160
  - *container_memcached
172
161
  - *container_agent
162
+ parallelism: 22
173
163
  steps:
174
164
  - restore_cache:
175
165
  keys:
@@ -177,22 +167,20 @@ orbs:
177
167
  - restore_cache:
178
168
  keys:
179
169
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
170
+ - run:
171
+ name: Set coverage report directory
172
+ command: |
173
+ # Create a unique coverage directory for this job, to avoid conflicts when merging all results
174
+ echo 'export COVERAGE_DIR="$COVERAGE_BASE_DIR/versions/$CIRCLE_JOB/$CIRCLE_NODE_INDEX"' >> $BASH_ENV
180
175
  - *step_run_all_tests
176
+ - persist_to_workspace:
177
+ root: .
178
+ paths:
179
+ - coverage
181
180
  benchmark:
182
- <<: *job_defaults
183
- parameters:
184
- ruby_version:
185
- description: Ruby version
186
- type: string
187
- image:
188
- description: Docker image location
189
- type: string
181
+ <<: *test_job_default
190
182
  docker:
191
183
  - <<: *container_base
192
- image: <<parameters.image>>
193
- environment:
194
- - BUNDLE_GEMFILE: /app/Gemfile
195
- - TEST_DATADOG_INTEGRATION: 1
196
184
  - *container_postgres
197
185
  - *container_redis
198
186
  - *container_agent
@@ -210,19 +198,7 @@ orbs:
210
198
  name: Run Benchmark without ddtracer
211
199
  command: rm -f lib/ddtrace.rb && bundle exec appraisal rails5-postgres-sidekiq ruby benchmarks/sidekiq_test.rb 2>&1 1> /dev/null | tee benchmark_results.csv
212
200
  lint:
213
- <<: *job_defaults
214
- parameters:
215
- ruby_version:
216
- description: Ruby version
217
- type: string
218
- image:
219
- description: Docker image location
220
- type: string
221
- docker:
222
- - <<: *container_base
223
- image: <<parameters.image>>
224
- environment:
225
- - BUNDLE_GEMFILE: /app/Gemfile
201
+ <<: *test_job_default
226
202
  steps:
227
203
  - restore_cache:
228
204
  keys:
@@ -231,6 +207,49 @@ orbs:
231
207
  keys:
232
208
  - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
233
209
  - *step_rubocop
210
+ coverage:
211
+ <<: *test_job_default
212
+ steps:
213
+ - restore_cache:
214
+ keys:
215
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
216
+ - restore_cache:
217
+ keys:
218
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
219
+ - attach_workspace:
220
+ at: /tmp/workspace
221
+ - run:
222
+ name: Install codecov
223
+ command: bundle add codecov
224
+ - run:
225
+ name: Generate coverage report artifact "coverage/index.html"
226
+ command: COVERAGE_DIR=/tmp/workspace/coverage bundle exec rake coverage:report
227
+ - run:
228
+ name: Generate coverage report artifact "coverage/versions/*/index.html"
229
+ command: COVERAGE_DIR=/tmp/workspace/coverage bundle exec rake coverage:report_per_ruby_version
230
+ - store_artifacts:
231
+ path: /tmp/workspace/coverage/report/
232
+ destination: coverage
233
+ changelog:
234
+ <<: *test_job_default
235
+ steps:
236
+ - restore_cache:
237
+ keys:
238
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundled-repo-<<parameters.ruby_version>>-{{ .Environment.CIRCLE_SHA1 }}'
239
+ - restore_cache:
240
+ keys:
241
+ - '{{ .Environment.CIRCLE_CACHE_VERSION }}-bundle-<<parameters.ruby_version>>-{{ checksum ".circleci/bundle_checksum" }}'
242
+ - attach_workspace:
243
+ at: /tmp/workspace
244
+ - run:
245
+ name: Format changelog
246
+ command: bundle exec rake changelog:format
247
+ - run:
248
+ name: Check if changelog was unformatted
249
+ command: |
250
+ if ! git diff-files --quiet; then
251
+ echo "Please run 'bundle exec rake changelog:format' and commit the results."
252
+ fi
234
253
  commands:
235
254
  executors:
236
255
 
@@ -238,7 +257,8 @@ jobs:
238
257
  "deploy release":
239
258
  <<: *job_defaults
240
259
  docker:
241
- - <<: *container_base
260
+ - environment:
261
+ *container_base_environment
242
262
  image: marcotc/docker-library:ddtrace_rb_2_5_6
243
263
  steps:
244
264
  - checkout
@@ -258,7 +278,8 @@ jobs:
258
278
  "deploy prerelease Gem":
259
279
  <<: *job_defaults
260
280
  docker:
261
- - <<: *container_base
281
+ - environment:
282
+ *container_base_environment
262
283
  image: marcotc/docker-library:ddtrace_rb_2_5_6
263
284
  steps:
264
285
  - run:
@@ -324,6 +345,15 @@ job_configuration:
324
345
  <<: *filters_all_branches_and_tags
325
346
  ruby_version: '2.7'
326
347
  image: marcotc/docker-library:ddtrace_rb_2_7_0
348
+ - &config-3_0
349
+ <<: *filters_all_branches_and_tags
350
+ ruby_version: '3.0'
351
+ image: marcotc/docker-library:ddtrace_rb_3.0.0
352
+ - &config-3_0-jit
353
+ <<: *filters_all_branches_and_tags
354
+ ruby_version: '3.0'
355
+ image: marcotc/docker-library:ddtrace_rb_3.0.0
356
+ jit: true
327
357
  # JRuby
328
358
  - &config-jruby-9_2
329
359
  <<: *filters_all_branches_and_tags
@@ -339,54 +369,56 @@ workflows:
339
369
  name: lint
340
370
  requires:
341
371
  - build-2.6
372
+ - orb/coverage:
373
+ <<: *config-2_7
374
+ name: coverage
375
+ requires:
376
+ - test-2.0
377
+ - test-2.1
378
+ - test-2.2
379
+ - test-2.3
380
+ - test-2.4
381
+ - test-2.5
382
+ - test-2.6
383
+ - test-2.7
384
+ - test-3.0
385
+ - test-jruby-9.2
386
+ - orb/changelog:
387
+ <<: *config-2_7
388
+ name: changelog
389
+ requires:
390
+ - build-2.7
391
+ filters:
392
+ branches:
393
+ only: /bump_to_version_.*/
342
394
  # MRI
343
- - orb/checkout:
344
- <<: *config-2_0
345
- name: checkout-2.0
346
395
  - orb/build:
347
396
  <<: *config-2_0
348
397
  name: build-2.0
349
- requires:
350
- - checkout-2.0
351
398
  - orb/test:
352
399
  <<: *config-2_0
353
400
  name: test-2.0
354
401
  requires:
355
402
  - build-2.0
356
- - orb/checkout:
357
- <<: *config-2_1
358
- name: checkout-2.1
359
403
  - orb/build:
360
404
  <<: *config-2_1
361
405
  name: build-2.1
362
- requires:
363
- - checkout-2.1
364
406
  - orb/test:
365
407
  <<: *config-2_1
366
408
  name: test-2.1
367
409
  requires:
368
410
  - build-2.1
369
- - orb/checkout:
370
- <<: *config-2_2
371
- name: checkout-2.2
372
411
  - orb/build:
373
412
  <<: *config-2_2
374
413
  name: build-2.2
375
- requires:
376
- - checkout-2.2
377
414
  - orb/test:
378
415
  <<: *config-2_2
379
416
  name: test-2.2
380
417
  requires:
381
418
  - build-2.2
382
- - orb/checkout:
383
- <<: *config-2_3
384
- name: checkout-2.3
385
419
  - orb/build:
386
420
  <<: *config-2_3
387
421
  name: build-2.3
388
- requires:
389
- - checkout-2.3
390
422
  - orb/test:
391
423
  <<: *config-2_3
392
424
  name: test-2.3
@@ -397,67 +429,58 @@ workflows:
397
429
  name: benchmark-2.3
398
430
  requires:
399
431
  - build-2.3
400
- - orb/checkout:
401
- <<: *config-2_4
402
- name: checkout-2.4
403
432
  - orb/build:
404
433
  <<: *config-2_4
405
434
  name: build-2.4
406
- requires:
407
- - checkout-2.4
408
435
  - orb/test:
409
436
  <<: *config-2_4
410
437
  name: test-2.4
411
438
  requires:
412
439
  - build-2.4
413
- - orb/checkout:
414
- <<: *config-2_5
415
- name: checkout-2.5
416
440
  - orb/build:
417
441
  <<: *config-2_5
418
442
  name: build-2.5
419
- requires:
420
- - checkout-2.5
421
443
  - orb/test:
422
444
  <<: *config-2_5
423
445
  name: test-2.5
424
446
  requires:
425
447
  - build-2.5
426
- - orb/checkout:
427
- <<: *config-2_6
428
- name: checkout-2.6
429
448
  - orb/build:
430
449
  <<: *config-2_6
431
450
  name: build-2.6
432
- requires:
433
- - checkout-2.6
434
451
  - orb/test:
435
452
  <<: *config-2_6
436
453
  name: test-2.6
437
454
  requires:
438
455
  - build-2.6
439
- - orb/checkout:
440
- <<: *config-2_7
441
- name: checkout-2.7
442
456
  - orb/build:
443
457
  <<: *config-2_7
444
458
  name: build-2.7
445
- requires:
446
- - checkout-2.7
447
459
  - orb/test:
448
460
  <<: *config-2_7
449
461
  name: test-2.7
450
462
  requires:
451
463
  - build-2.7
464
+ - orb/build:
465
+ <<: *config-3_0
466
+ name: build-3.0
467
+ - orb/test:
468
+ <<: *config-3_0
469
+ name: test-3.0
470
+ requires:
471
+ - build-3.0
472
+ - orb/build:
473
+ <<: *config-3_0-jit
474
+ name: build-3.0-jit
475
+ - orb/test:
476
+ <<: *config-3_0-jit
477
+ name: test-3.0-jit
478
+ requires:
479
+ - build-3.0-jit
452
480
  # JRuby
453
- - orb/checkout:
454
- <<: *config-jruby-9_2
455
- name: checkout-jruby-9.2
456
481
  - orb/build:
457
482
  <<: *config-jruby-9_2
458
483
  name: build-jruby-9.2
459
- requires:
460
- - checkout-jruby-9.2
461
484
  - orb/test:
462
485
  <<: *config-jruby-9_2
463
486
  name: test-jruby-9.2
@@ -476,6 +499,8 @@ workflows:
476
499
  - test-2.5
477
500
  - test-2.6
478
501
  - test-2.7
502
+ - test-3.0
503
+ - test-3.0-jit
479
504
  - test-jruby-9.2
480
505
  - "deploy release":
481
506
  <<: *filters_only_release_tags
@@ -489,4 +514,6 @@ workflows:
489
514
  - test-2.5
490
515
  - test-2.6
491
516
  - test-2.7
517
+ - test-3.0
518
+ - test-3.0-jit
492
519
  - test-jruby-9.2
@@ -0,0 +1,73 @@
1
+ # https://hub.docker.com/layers/ruby/library/ruby/3.0.0/images/sha256-9719b7df964602b114a5e9319bd0a3ce2d4d44ccb7ea4d1702fa1ef9742a8f84
2
+ FROM ruby@sha256:9719b7df964602b114a5e9319bd0a3ce2d4d44ccb7ea4d1702fa1ef9742a8f84
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 mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME"
64
+
65
+ # Upgrade RubyGems and Bundler
66
+ RUN gem update --system
67
+ RUN gem install bundler
68
+ ENV BUNDLE_SILENCE_ROOT_WARNING 1
69
+
70
+ RUN mkdir /app
71
+ WORKDIR /app
72
+
73
+ CMD ["/bin/sh"]