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.
- checksums.yaml +4 -4
- data/.circleci/config.yml +142 -115
- data/.circleci/images/primary/Dockerfile-3.0.0 +73 -0
- data/.github/workflows/add-milestone-to-pull-requests.yml +42 -0
- data/.github/workflows/create-next-milestone.yml +20 -0
- data/.gitlab-ci.yml +1 -0
- data/.simplecov +41 -0
- data/Appraisals +476 -120
- data/CHANGELOG.md +1115 -325
- data/CONTRIBUTING.md +2 -2
- data/Gemfile +4 -2
- data/Rakefile +665 -477
- data/ddtrace.gemspec +8 -8
- data/docker-compose.yml +30 -0
- data/docs/DevelopmentGuide.md +28 -2
- data/docs/GettingStarted.md +170 -41
- data/lib/ddtrace.rb +4 -0
- data/lib/ddtrace/buffer.rb +259 -52
- data/lib/ddtrace/configuration.rb +55 -5
- data/lib/ddtrace/configuration/components.rb +4 -7
- data/lib/ddtrace/configuration/options.rb +3 -1
- data/lib/ddtrace/configuration/settings.rb +9 -3
- data/lib/ddtrace/context.rb +18 -0
- data/lib/ddtrace/context_provider.rb +17 -5
- data/lib/ddtrace/contrib/action_pack/action_controller/instrumentation.rb +0 -7
- data/lib/ddtrace/contrib/action_view/event.rb +0 -4
- data/lib/ddtrace/contrib/action_view/events/render_partial.rb +1 -0
- data/lib/ddtrace/contrib/action_view/events/render_template.rb +1 -0
- data/lib/ddtrace/contrib/active_record/events/sql.rb +4 -0
- data/lib/ddtrace/contrib/active_record/utils.rb +11 -1
- data/lib/ddtrace/contrib/active_support/cache/instrumentation.rb +104 -3
- data/lib/ddtrace/contrib/active_support/cache/patcher.rb +21 -0
- data/lib/ddtrace/contrib/active_support/ext.rb +3 -0
- data/lib/ddtrace/contrib/active_support/notifications/event.rb +10 -0
- data/lib/ddtrace/contrib/active_support/notifications/subscription.rb +2 -2
- data/lib/ddtrace/contrib/aws/instrumentation.rb +6 -1
- data/lib/ddtrace/contrib/aws/patcher.rb +0 -1
- data/lib/ddtrace/contrib/aws/services.rb +1 -0
- data/lib/ddtrace/contrib/configurable.rb +2 -0
- data/lib/ddtrace/contrib/configuration/resolvers/pattern_resolver.rb +6 -5
- data/lib/ddtrace/contrib/cucumber/configuration/settings.rb +38 -0
- data/lib/ddtrace/contrib/cucumber/ext.rb +19 -0
- data/lib/ddtrace/contrib/cucumber/formatter.rb +104 -0
- data/lib/ddtrace/contrib/cucumber/instrumentation.rb +24 -0
- data/lib/ddtrace/contrib/cucumber/integration.rb +40 -0
- data/lib/ddtrace/contrib/cucumber/patcher.rb +23 -0
- data/lib/ddtrace/contrib/dalli/instrumentation.rb +4 -0
- data/lib/ddtrace/contrib/delayed_job/configuration/settings.rb +2 -0
- data/lib/ddtrace/contrib/delayed_job/ext.rb +2 -0
- data/lib/ddtrace/contrib/delayed_job/plugin.rb +39 -15
- data/lib/ddtrace/contrib/elasticsearch/patcher.rb +4 -0
- data/lib/ddtrace/contrib/ethon/easy_patch.rb +5 -3
- data/lib/ddtrace/contrib/ethon/ext.rb +1 -0
- data/lib/ddtrace/contrib/ethon/multi_patch.rb +4 -0
- data/lib/ddtrace/contrib/excon/middleware.rb +11 -1
- data/lib/ddtrace/contrib/faraday/middleware.rb +4 -0
- data/lib/ddtrace/contrib/faraday/patcher.rb +1 -1
- data/lib/ddtrace/contrib/grape/configuration/settings.rb +7 -0
- data/lib/ddtrace/contrib/grape/endpoint.rb +53 -18
- data/lib/ddtrace/contrib/grape/ext.rb +1 -0
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/client.rb +5 -1
- data/lib/ddtrace/contrib/grpc/datadog_interceptor/server.rb +4 -0
- data/lib/ddtrace/contrib/http/instrumentation.rb +6 -2
- data/lib/ddtrace/contrib/httprb/instrumentation.rb +6 -3
- data/lib/ddtrace/contrib/kafka/event.rb +1 -1
- data/lib/ddtrace/contrib/mongodb/subscribers.rb +4 -0
- data/lib/ddtrace/contrib/mysql2/instrumentation.rb +4 -0
- data/lib/ddtrace/contrib/presto/instrumentation.rb +3 -0
- data/lib/ddtrace/contrib/qless/configuration/settings.rb +35 -0
- data/lib/ddtrace/contrib/qless/ext.rb +20 -0
- data/lib/ddtrace/contrib/qless/integration.rb +38 -0
- data/lib/ddtrace/contrib/qless/patcher.rb +35 -0
- data/lib/ddtrace/contrib/qless/qless_job.rb +72 -0
- data/lib/ddtrace/contrib/qless/tracer_cleaner.rb +32 -0
- data/lib/ddtrace/contrib/que/configuration/settings.rb +43 -0
- data/lib/ddtrace/contrib/que/ext.rb +30 -0
- data/lib/ddtrace/contrib/que/integration.rb +42 -0
- data/lib/ddtrace/contrib/que/patcher.rb +24 -0
- data/lib/ddtrace/contrib/que/tracer.rb +57 -0
- data/lib/ddtrace/contrib/racecar/event.rb +4 -0
- data/lib/ddtrace/contrib/racecar/events.rb +2 -0
- data/lib/ddtrace/contrib/racecar/events/consume.rb +27 -0
- data/lib/ddtrace/contrib/racecar/ext.rb +1 -0
- data/lib/ddtrace/contrib/rack/middlewares.rb +2 -0
- data/lib/ddtrace/contrib/rails/configuration/settings.rb +5 -0
- data/lib/ddtrace/contrib/rails/ext.rb +1 -0
- data/lib/ddtrace/contrib/rails/log_injection.rb +81 -0
- data/lib/ddtrace/contrib/rails/middlewares.rb +7 -2
- data/lib/ddtrace/contrib/rails/patcher.rb +29 -0
- data/lib/ddtrace/contrib/redis/configuration/resolver.rb +3 -1
- data/lib/ddtrace/contrib/redis/configuration/settings.rb +5 -0
- data/lib/ddtrace/contrib/redis/ext.rb +1 -0
- data/lib/ddtrace/contrib/redis/patcher.rb +20 -3
- data/lib/ddtrace/contrib/redis/quantize.rb +27 -0
- data/lib/ddtrace/contrib/redis/tags.rb +9 -1
- data/lib/ddtrace/contrib/resque/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/resque/integration.rb +1 -1
- data/lib/ddtrace/contrib/resque/resque_job.rb +1 -1
- data/lib/ddtrace/contrib/rest_client/request_patch.rb +4 -0
- data/lib/ddtrace/contrib/rspec/configuration/settings.rb +38 -0
- data/lib/ddtrace/contrib/rspec/example.rb +61 -0
- data/lib/ddtrace/contrib/rspec/example_group.rb +61 -0
- data/lib/ddtrace/contrib/rspec/ext.rb +19 -0
- data/lib/ddtrace/contrib/rspec/integration.rb +41 -0
- data/lib/ddtrace/contrib/rspec/patcher.rb +25 -0
- data/lib/ddtrace/contrib/sequel/database.rb +3 -1
- data/lib/ddtrace/contrib/sequel/dataset.rb +3 -2
- data/lib/ddtrace/contrib/sequel/ext.rb +1 -0
- data/lib/ddtrace/contrib/sequel/utils.rb +16 -5
- data/lib/ddtrace/contrib/shoryuken/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/shoryuken/tracer.rb +4 -1
- data/lib/ddtrace/contrib/sidekiq/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/sidekiq/server_tracer.rb +4 -1
- data/lib/ddtrace/contrib/sinatra/env.rb +5 -4
- data/lib/ddtrace/contrib/sinatra/tracer.rb +21 -42
- data/lib/ddtrace/contrib/sinatra/tracer_middleware.rb +50 -23
- data/lib/ddtrace/contrib/sneakers/configuration/settings.rb +1 -0
- data/lib/ddtrace/contrib/sneakers/tracer.rb +17 -20
- data/lib/ddtrace/contrib/status_code_matcher.rb +67 -0
- data/lib/ddtrace/ext/app_types.rb +1 -0
- data/lib/ddtrace/ext/ci.rb +264 -0
- data/lib/ddtrace/ext/distributed.rb +8 -2
- data/lib/ddtrace/ext/git.rb +12 -0
- data/lib/ddtrace/ext/integration.rb +8 -0
- data/lib/ddtrace/ext/runtime.rb +2 -0
- data/lib/ddtrace/ext/test.rb +24 -0
- data/lib/ddtrace/opentracer/distributed_headers.rb +1 -1
- data/lib/ddtrace/propagation/grpc_propagator.rb +18 -6
- data/lib/ddtrace/runtime/identity.rb +4 -5
- data/lib/ddtrace/runtime/metrics.rb +6 -2
- data/lib/ddtrace/sampler.rb +2 -2
- data/lib/ddtrace/sampling/rate_limiter.rb +65 -16
- data/lib/ddtrace/span.rb +152 -27
- data/lib/ddtrace/tracer.rb +25 -13
- data/lib/ddtrace/transport/http/adapters/net.rb +8 -2
- data/lib/ddtrace/transport/http/statistics.rb +14 -1
- data/lib/ddtrace/transport/traces.rb +7 -2
- data/lib/ddtrace/utils.rb +16 -13
- data/lib/ddtrace/utils/forking.rb +52 -0
- data/lib/ddtrace/version.rb +1 -1
- data/lib/ddtrace/workers/async.rb +2 -2
- data/lib/ddtrace/workers/loop.rb +1 -1
- data/lib/ddtrace/workers/polling.rb +1 -1
- data/lib/ddtrace/workers/runtime_metrics.rb +7 -3
- data/lib/ddtrace/writer.rb +19 -1
- metadata +147 -42
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 9bab61fb7855f2281cbaa808536cc7f7f6fe857657c49f91b532e6780c05187f
|
|
4
|
+
data.tar.gz: 463065e1f917522e19b2ace842cf117bfaf747b2e41e2bae405073080cf6f077
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 688c0fb395d61cb53609eb872f32eba8337c810d7d83d4751822e31487a34cf5322284f025b512bc3e7251369406b77467754aecf327403dcf0128fcfebbdfc6
|
|
7
|
+
data.tar.gz: a484ea8f729a3736209c8182ea729e7e2f9475eff4742d366f1824b8d50bf78ebd92d0eb4afbf0c6fc01e2bedcb0e553d11c246e2cbcfd299d64819e64902d99
|
data/.circleci/config.yml
CHANGED
|
@@ -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
|
-
|
|
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
|
-
<<: *
|
|
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
|
-
<<: *
|
|
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
|
-
<<: *
|
|
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
|
-
<<: *
|
|
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
|
-
-
|
|
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
|
-
-
|
|
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"]
|