datadog-ci 0.1.1 → 0.2.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 (54) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -1
  3. data/LICENSE-3rdparty.csv +1 -0
  4. data/README.md +64 -0
  5. data/lib/datadog/ci/configuration/components.rb +51 -5
  6. data/lib/datadog/ci/configuration/settings.rb +36 -8
  7. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +2 -3
  8. data/lib/datadog/ci/contrib/cucumber/formatter.rb +8 -10
  9. data/lib/datadog/ci/contrib/cucumber/integration.rb +3 -5
  10. data/lib/datadog/ci/contrib/integration.rb +149 -0
  11. data/lib/datadog/ci/contrib/minitest/configuration/settings.rb +2 -3
  12. data/lib/datadog/ci/contrib/minitest/hooks.rb +8 -4
  13. data/lib/datadog/ci/contrib/minitest/integration.rb +3 -5
  14. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +2 -3
  15. data/lib/datadog/ci/contrib/rspec/example.rb +5 -8
  16. data/lib/datadog/ci/contrib/rspec/integration.rb +3 -5
  17. data/lib/datadog/ci/contrib/settings.rb +33 -0
  18. data/lib/datadog/ci/ext/environment/providers/local_git.rb +7 -0
  19. data/lib/datadog/ci/ext/settings.rb +2 -0
  20. data/lib/datadog/ci/ext/transport.rb +19 -0
  21. data/lib/datadog/ci/{test.rb → recorder.rb} +6 -5
  22. data/lib/datadog/ci/test_visibility/flush.rb +40 -0
  23. data/lib/datadog/ci/test_visibility/serializers/base.rb +161 -0
  24. data/lib/datadog/ci/test_visibility/serializers/factories/test_level.rb +30 -0
  25. data/lib/datadog/ci/test_visibility/serializers/span.rb +51 -0
  26. data/lib/datadog/ci/test_visibility/serializers/test_v1.rb +60 -0
  27. data/lib/datadog/ci/test_visibility/transport.rb +169 -0
  28. data/lib/datadog/ci/transport/gzip.rb +20 -0
  29. data/lib/datadog/ci/transport/http.rb +153 -0
  30. data/lib/datadog/ci/version.rb +2 -2
  31. data/sig/datadog/ci/configuration/components.rbs +2 -0
  32. data/sig/datadog/ci/configuration/settings.rbs +2 -0
  33. data/sig/datadog/ci/contrib/cucumber/configuration/settings.rbs +1 -1
  34. data/sig/datadog/ci/contrib/cucumber/integration.rbs +2 -1
  35. data/sig/datadog/ci/contrib/integration.rbs +44 -0
  36. data/sig/datadog/ci/contrib/minitest/configuration/settings.rbs +1 -1
  37. data/sig/datadog/ci/contrib/minitest/integration.rbs +4 -3
  38. data/sig/datadog/ci/contrib/rspec/configuration/settings.rbs +1 -1
  39. data/sig/datadog/ci/contrib/rspec/integration.rbs +3 -2
  40. data/sig/datadog/ci/contrib/settings.rbs +25 -0
  41. data/sig/datadog/ci/ext/settings.rbs +2 -0
  42. data/sig/datadog/ci/ext/transport.rbs +21 -0
  43. data/sig/datadog/ci/{test.rbs → recorder.rbs} +1 -1
  44. data/sig/datadog/ci/test_visibility/flush.rbs +17 -0
  45. data/sig/datadog/ci/test_visibility/serializers/base.rbs +73 -0
  46. data/sig/datadog/ci/test_visibility/serializers/factories/test_level.rbs +13 -0
  47. data/sig/datadog/ci/test_visibility/serializers/span.rbs +18 -0
  48. data/sig/datadog/ci/test_visibility/serializers/test_v1.rbs +23 -0
  49. data/sig/datadog/ci/test_visibility/transport.rbs +39 -0
  50. data/sig/datadog/ci/transport/gzip.rbs +9 -0
  51. data/sig/datadog/ci/transport/http.rbs +61 -0
  52. metadata +41 -7
  53. data/lib/datadog/ci/flush.rb +0 -38
  54. data/sig/datadog/ci/flush.rbs +0 -15
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog-ci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-14 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2023-10-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: msgpack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  description: |2
14
28
  datadog-ci is a Datadog's CI visibility library for Ruby. It traces
15
29
  tests as they are being executed and brings developers visibility into
@@ -36,6 +50,7 @@ files:
36
50
  - lib/datadog/ci/contrib/cucumber/instrumentation.rb
37
51
  - lib/datadog/ci/contrib/cucumber/integration.rb
38
52
  - lib/datadog/ci/contrib/cucumber/patcher.rb
53
+ - lib/datadog/ci/contrib/integration.rb
39
54
  - lib/datadog/ci/contrib/minitest/configuration/settings.rb
40
55
  - lib/datadog/ci/contrib/minitest/ext.rb
41
56
  - lib/datadog/ci/contrib/minitest/hooks.rb
@@ -46,6 +61,7 @@ files:
46
61
  - lib/datadog/ci/contrib/rspec/ext.rb
47
62
  - lib/datadog/ci/contrib/rspec/integration.rb
48
63
  - lib/datadog/ci/contrib/rspec/patcher.rb
64
+ - lib/datadog/ci/contrib/settings.rb
49
65
  - lib/datadog/ci/ext/app_types.rb
50
66
  - lib/datadog/ci/ext/environment.rb
51
67
  - lib/datadog/ci/ext/environment/extractor.rb
@@ -69,9 +85,17 @@ files:
69
85
  - lib/datadog/ci/ext/git.rb
70
86
  - lib/datadog/ci/ext/settings.rb
71
87
  - lib/datadog/ci/ext/test.rb
88
+ - lib/datadog/ci/ext/transport.rb
72
89
  - lib/datadog/ci/extensions.rb
73
- - lib/datadog/ci/flush.rb
74
- - lib/datadog/ci/test.rb
90
+ - lib/datadog/ci/recorder.rb
91
+ - lib/datadog/ci/test_visibility/flush.rb
92
+ - lib/datadog/ci/test_visibility/serializers/base.rb
93
+ - lib/datadog/ci/test_visibility/serializers/factories/test_level.rb
94
+ - lib/datadog/ci/test_visibility/serializers/span.rb
95
+ - lib/datadog/ci/test_visibility/serializers/test_v1.rb
96
+ - lib/datadog/ci/test_visibility/transport.rb
97
+ - lib/datadog/ci/transport/gzip.rb
98
+ - lib/datadog/ci/transport/http.rb
75
99
  - lib/datadog/ci/utils/git.rb
76
100
  - lib/datadog/ci/version.rb
77
101
  - sig/datadog/ci.rbs
@@ -83,6 +107,7 @@ files:
83
107
  - sig/datadog/ci/contrib/cucumber/instrumentation.rbs
84
108
  - sig/datadog/ci/contrib/cucumber/integration.rbs
85
109
  - sig/datadog/ci/contrib/cucumber/patcher.rbs
110
+ - sig/datadog/ci/contrib/integration.rbs
86
111
  - sig/datadog/ci/contrib/minitest/configuration/settings.rbs
87
112
  - sig/datadog/ci/contrib/minitest/ext.rbs
88
113
  - sig/datadog/ci/contrib/minitest/hooks.rbs
@@ -93,6 +118,7 @@ files:
93
118
  - sig/datadog/ci/contrib/rspec/ext.rbs
94
119
  - sig/datadog/ci/contrib/rspec/integration.rbs
95
120
  - sig/datadog/ci/contrib/rspec/patcher.rbs
121
+ - sig/datadog/ci/contrib/settings.rbs
96
122
  - sig/datadog/ci/ext/app_types.rbs
97
123
  - sig/datadog/ci/ext/environment.rbs
98
124
  - sig/datadog/ci/ext/environment/extractor.rbs
@@ -116,9 +142,17 @@ files:
116
142
  - sig/datadog/ci/ext/git.rbs
117
143
  - sig/datadog/ci/ext/settings.rbs
118
144
  - sig/datadog/ci/ext/test.rbs
145
+ - sig/datadog/ci/ext/transport.rbs
119
146
  - sig/datadog/ci/extensions.rbs
120
- - sig/datadog/ci/flush.rbs
121
- - sig/datadog/ci/test.rbs
147
+ - sig/datadog/ci/recorder.rbs
148
+ - sig/datadog/ci/test_visibility/flush.rbs
149
+ - sig/datadog/ci/test_visibility/serializers/base.rbs
150
+ - sig/datadog/ci/test_visibility/serializers/factories/test_level.rbs
151
+ - sig/datadog/ci/test_visibility/serializers/span.rbs
152
+ - sig/datadog/ci/test_visibility/serializers/test_v1.rbs
153
+ - sig/datadog/ci/test_visibility/transport.rbs
154
+ - sig/datadog/ci/transport/gzip.rbs
155
+ - sig/datadog/ci/transport/http.rbs
122
156
  - sig/datadog/ci/utils/git.rbs
123
157
  - sig/datadog/ci/version.rbs
124
158
  homepage: https://github.com/DataDog/datadog-ci-rb
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "datadog/tracing/metadata/ext"
4
- require "datadog/tracing/flush"
5
-
6
- module Datadog
7
- module CI
8
- module Flush
9
- # Common behavior for CI flushing
10
- module Tagging
11
- # Decorate a trace with CI tags
12
- def get_trace(trace_op)
13
- trace = trace_op.flush!
14
-
15
- # Origin tag is required on every span
16
- trace.spans.each do |span|
17
- span.set_tag(
18
- Tracing::Metadata::Ext::Distributed::TAG_ORIGIN,
19
- trace.origin
20
- )
21
- end
22
-
23
- trace
24
- end
25
- end
26
-
27
- # Consumes only completed traces (where all spans have finished)
28
- class Finished < Tracing::Flush::Finished
29
- prepend Tagging
30
- end
31
-
32
- # Performs partial trace flushing to avoid large traces residing in memory for too long
33
- class Partial < Tracing::Flush::Partial
34
- prepend Tagging
35
- end
36
- end
37
- end
38
- end
@@ -1,15 +0,0 @@
1
- module Datadog
2
- module CI
3
- module Flush
4
- module Tagging
5
- def get_trace: (untyped trace_op) -> untyped
6
- end
7
- class Finished < Tracing::Flush::Finished
8
- prepend Tagging
9
- end
10
- class Partial < Tracing::Flush::Partial
11
- prepend Tagging
12
- end
13
- end
14
- end
15
- end