datadog-ci 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -1
  3. data/LICENSE-3rdparty.csv +1 -0
  4. data/README.md +65 -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 -2
  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 -2
  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 -4
  17. data/lib/datadog/ci/contrib/settings.rb +33 -0
  18. data/lib/datadog/ci/ext/environment/extractor.rb +0 -1
  19. data/lib/datadog/ci/ext/environment/providers/local_git.rb +7 -0
  20. data/lib/datadog/ci/ext/settings.rb +2 -0
  21. data/lib/datadog/ci/ext/transport.rb +19 -0
  22. data/lib/datadog/ci/{test.rb → recorder.rb} +6 -5
  23. data/lib/datadog/ci/test_visibility/flush.rb +40 -0
  24. data/lib/datadog/ci/test_visibility/serializers/base.rb +161 -0
  25. data/lib/datadog/ci/test_visibility/serializers/factories/test_level.rb +30 -0
  26. data/lib/datadog/ci/test_visibility/serializers/span.rb +51 -0
  27. data/lib/datadog/ci/test_visibility/serializers/test_v1.rb +60 -0
  28. data/lib/datadog/ci/test_visibility/transport.rb +169 -0
  29. data/lib/datadog/ci/transport/gzip.rb +20 -0
  30. data/lib/datadog/ci/transport/http.rb +153 -0
  31. data/lib/datadog/ci/version.rb +1 -1
  32. data/lib/datadog/ci.rb +0 -1
  33. data/sig/datadog/ci/configuration/components.rbs +2 -0
  34. data/sig/datadog/ci/configuration/settings.rbs +2 -0
  35. data/sig/datadog/ci/contrib/cucumber/configuration/settings.rbs +1 -1
  36. data/sig/datadog/ci/contrib/cucumber/integration.rbs +2 -1
  37. data/sig/datadog/ci/contrib/integration.rbs +44 -0
  38. data/sig/datadog/ci/contrib/minitest/configuration/settings.rbs +1 -1
  39. data/sig/datadog/ci/contrib/minitest/integration.rbs +4 -3
  40. data/sig/datadog/ci/contrib/rspec/configuration/settings.rbs +1 -1
  41. data/sig/datadog/ci/contrib/rspec/integration.rbs +3 -2
  42. data/sig/datadog/ci/contrib/settings.rbs +25 -0
  43. data/sig/datadog/ci/ext/settings.rbs +2 -0
  44. data/sig/datadog/ci/ext/transport.rbs +21 -0
  45. data/sig/datadog/ci/{test.rbs → recorder.rbs} +1 -1
  46. data/sig/datadog/ci/test_visibility/flush.rbs +17 -0
  47. data/sig/datadog/ci/test_visibility/serializers/base.rbs +73 -0
  48. data/sig/datadog/ci/test_visibility/serializers/factories/test_level.rbs +13 -0
  49. data/sig/datadog/ci/test_visibility/serializers/span.rbs +18 -0
  50. data/sig/datadog/ci/test_visibility/serializers/test_v1.rbs +23 -0
  51. data/sig/datadog/ci/test_visibility/transport.rbs +39 -0
  52. data/sig/datadog/ci/transport/gzip.rbs +9 -0
  53. data/sig/datadog/ci/transport/http.rbs +61 -0
  54. data/sig/datadog/ci/version.rbs +5 -5
  55. metadata +41 -7
  56. data/lib/datadog/ci/flush.rb +0 -38
  57. 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.0
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-13 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