datadog-ci 0.4.0 → 0.5.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 (59) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +50 -1
  3. data/README.md +26 -3
  4. data/lib/datadog/ci/concurrent_span.rb +59 -0
  5. data/lib/datadog/ci/configuration/components.rb +37 -3
  6. data/lib/datadog/ci/configuration/settings.rb +7 -1
  7. data/lib/datadog/ci/context/global.rb +80 -0
  8. data/lib/datadog/ci/contrib/cucumber/configuration/settings.rb +12 -1
  9. data/lib/datadog/ci/contrib/cucumber/formatter.rb +3 -4
  10. data/lib/datadog/ci/contrib/minitest/configuration/settings.rb +10 -1
  11. data/lib/datadog/ci/contrib/minitest/hooks.rb +3 -4
  12. data/lib/datadog/ci/contrib/rspec/configuration/settings.rb +10 -1
  13. data/lib/datadog/ci/contrib/rspec/example.rb +3 -4
  14. data/lib/datadog/ci/contrib/settings.rb +2 -0
  15. data/lib/datadog/ci/ext/app_types.rb +5 -0
  16. data/lib/datadog/ci/ext/settings.rb +11 -0
  17. data/lib/datadog/ci/ext/test.rb +12 -1
  18. data/lib/datadog/ci/null_span.rb +63 -0
  19. data/lib/datadog/ci/recorder.rb +207 -35
  20. data/lib/datadog/ci/span.rb +13 -3
  21. data/lib/datadog/ci/test.rb +0 -1
  22. data/lib/datadog/ci/test_module.rb +23 -0
  23. data/lib/datadog/ci/test_session.rb +36 -0
  24. data/lib/datadog/ci/test_suite.rb +25 -0
  25. data/lib/datadog/ci/test_visibility/serializers/base.rb +100 -12
  26. data/lib/datadog/ci/test_visibility/serializers/factories/test_suite_level.rb +37 -0
  27. data/lib/datadog/ci/test_visibility/serializers/span.rb +2 -16
  28. data/lib/datadog/ci/test_visibility/serializers/test_module.rb +46 -0
  29. data/lib/datadog/ci/test_visibility/serializers/test_session.rb +46 -0
  30. data/lib/datadog/ci/test_visibility/serializers/test_suite.rb +46 -0
  31. data/lib/datadog/ci/test_visibility/serializers/test_v1.rb +3 -17
  32. data/lib/datadog/ci/test_visibility/serializers/test_v2.rb +38 -0
  33. data/lib/datadog/ci/test_visibility/transport.rb +4 -4
  34. data/lib/datadog/ci/utils/test_run.rb +15 -0
  35. data/lib/datadog/ci/version.rb +1 -1
  36. data/lib/datadog/ci.rb +214 -32
  37. data/sig/datadog/ci/concurrent_span.rbs +23 -0
  38. data/sig/datadog/ci/configuration/components.rbs +2 -0
  39. data/sig/datadog/ci/context/global.rbs +37 -0
  40. data/sig/datadog/ci/ext/app_types.rbs +6 -1
  41. data/sig/datadog/ci/ext/settings.rbs +3 -0
  42. data/sig/datadog/ci/ext/test.rbs +15 -0
  43. data/sig/datadog/ci/null_span.rbs +37 -0
  44. data/sig/datadog/ci/recorder.rbs +54 -1
  45. data/sig/datadog/ci/span.rbs +4 -0
  46. data/sig/datadog/ci/test_module.rbs +6 -0
  47. data/sig/datadog/ci/test_session.rbs +9 -0
  48. data/sig/datadog/ci/test_suite.rbs +6 -0
  49. data/sig/datadog/ci/test_visibility/serializers/base.rbs +26 -5
  50. data/sig/datadog/ci/test_visibility/serializers/factories/test_suite_level.rbs +13 -0
  51. data/sig/datadog/ci/test_visibility/serializers/test_module.rbs +26 -0
  52. data/sig/datadog/ci/test_visibility/serializers/test_session.rbs +26 -0
  53. data/sig/datadog/ci/test_visibility/serializers/test_suite.rbs +26 -0
  54. data/sig/datadog/ci/test_visibility/serializers/test_v1.rbs +1 -1
  55. data/sig/datadog/ci/test_visibility/serializers/test_v2.rbs +25 -0
  56. data/sig/datadog/ci/test_visibility/transport.rbs +3 -3
  57. data/sig/datadog/ci/utils/test_run.rbs +11 -0
  58. data/sig/datadog/ci.rbs +18 -2
  59. metadata +26 -2
@@ -0,0 +1,23 @@
1
+ module Datadog
2
+ module CI
3
+ class ConcurrentSpan < Span
4
+ @mutex: Thread::Mutex
5
+
6
+ def initialize: (Datadog::Tracing::SpanOperation tracer_span) -> void
7
+ def passed!: () -> void
8
+ def failed!: (?exception: untyped?) -> void
9
+ def skipped!: (?exception: untyped?, ?reason: String?) -> void
10
+ def get_tag: (String key) -> untyped?
11
+ def set_tag: (String key, untyped? value) -> void
12
+ def set_metric: (String key, untyped value) -> void
13
+ def finish: () -> void
14
+ def set_tags: (Hash[untyped, untyped] tags) -> void
15
+
16
+ def set_environment_runtime_tags: () -> void
17
+
18
+ def set_default_tags: () -> void
19
+
20
+ def synchronize: () { () -> untyped } -> untyped
21
+ end
22
+ end
23
+ end
@@ -13,6 +13,8 @@ module Datadog
13
13
  def build_agentless_transport: (untyped settings) -> Datadog::CI::TestVisibility::Transport?
14
14
  def build_evp_proxy_transport: (untyped settings, untyped agent_settings) -> Datadog::CI::TestVisibility::Transport
15
15
  def can_use_evp_proxy?: (untyped settings, untyped agent_settings) -> bool
16
+ def serializers_factory: (untyped settings) -> (singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestSuiteLevel) | singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestLevel))
17
+ def check_dd_site: (untyped settings) -> void
16
18
  end
17
19
  end
18
20
  end
@@ -0,0 +1,37 @@
1
+ module Datadog
2
+ module CI
3
+ module Context
4
+ class Global
5
+ @mutex: Thread::Mutex
6
+
7
+ @test_session: Datadog::CI::TestSession?
8
+ @test_module: Datadog::CI::TestModule?
9
+ @test_suites: Hash[String, Datadog::CI::TestSuite]
10
+
11
+ def initialize: () -> void
12
+
13
+ def fetch_or_activate_test_suite: (String test_suite_name) {() -> Datadog::CI::TestSuite} -> Datadog::CI::TestSuite
14
+
15
+ def fetch_or_activate_test_module: () {() -> Datadog::CI::TestModule} -> Datadog::CI::TestModule
16
+
17
+ def fetch_or_activate_test_session: () {() -> Datadog::CI::TestSession} -> Datadog::CI::TestSession
18
+
19
+ def active_test_session: () -> Datadog::CI::TestSession?
20
+
21
+ def active_test_suite: (String test_suite_name) -> Datadog::CI::TestSuite?
22
+
23
+ def service: () -> String?
24
+
25
+ def inheritable_session_tags: () -> Hash[untyped, untyped]
26
+
27
+ def active_test_module: () -> Datadog::CI::TestModule?
28
+
29
+ def deactivate_test_session!: () -> void
30
+
31
+ def deactivate_test_module!: () -> void
32
+
33
+ def deactivate_test_suite!: (String test_suite_name) -> void
34
+ end
35
+ end
36
+ end
37
+ end
@@ -2,7 +2,12 @@ module Datadog
2
2
  module CI
3
3
  module Ext
4
4
  module AppTypes
5
- TYPE_TEST: String
5
+ TYPE_TEST: "test"
6
+ TYPE_TEST_SESSION: "test_session_end"
7
+ TYPE_TEST_MODULE: "test_module_end"
8
+ TYPE_TEST_SUITE: "test_suite_end"
9
+
10
+ CI_SPAN_TYPES: Array[String]
6
11
  end
7
12
  end
8
13
  end
@@ -5,6 +5,9 @@ module Datadog
5
5
  ENV_MODE_ENABLED: String
6
6
  ENV_AGENTLESS_MODE_ENABLED: String
7
7
  ENV_AGENTLESS_URL: String
8
+ ENV_EXPERIMENTAL_TEST_SUITE_LEVEL_VISIBILITY_ENABLED: String
9
+
10
+ DD_SITE_ALLOWLIST: Array[String]
8
11
  end
9
12
  end
10
13
  end
@@ -18,9 +18,24 @@ module Datadog
18
18
 
19
19
  TAG_SUITE: String
20
20
 
21
+ TAG_MODULE: String
22
+
21
23
  TAG_TRAITS: String
22
24
 
23
25
  TAG_TYPE: String
26
+
27
+ TAG_COMMAND: String
28
+
29
+ TAG_TEST_SESSION_ID: String
30
+
31
+ TAG_TEST_MODULE_ID: String
32
+
33
+ TAG_TEST_SUITE_ID: String
34
+
35
+ SPECIAL_TAGS: Array[String]
36
+
37
+ INHERITABLE_TAGS: Array[String]
38
+
24
39
  TAG_OS_ARCHITECTURE: String
25
40
 
26
41
  TAG_OS_PLATFORM: String
@@ -0,0 +1,37 @@
1
+ module Datadog
2
+ module CI
3
+ class NullSpan < Span
4
+ def initialize: () -> void
5
+
6
+ def id: () -> nil
7
+
8
+ def name: () -> nil
9
+
10
+ def service: () -> nil
11
+
12
+ def span_type: () -> nil
13
+
14
+ def passed!: () -> nil
15
+
16
+ def failed!: (?exception: untyped?) -> nil
17
+
18
+ def skipped!: (?exception: untyped?, ?reason: untyped?) -> nil
19
+
20
+ def get_tag: (untyped key) -> nil
21
+
22
+ def set_tag: (untyped key, untyped value) -> nil
23
+
24
+ def set_metric: (untyped key, untyped value) -> nil
25
+
26
+ def finish: () -> nil
27
+
28
+ def set_tags: (untyped tags) -> nil
29
+
30
+ def set_environment_runtime_tags: () -> nil
31
+
32
+ def set_default_tags: () -> nil
33
+
34
+ def to_s: () -> untyped
35
+ end
36
+ end
37
+ end
@@ -1,21 +1,49 @@
1
1
  module Datadog
2
2
  module CI
3
3
  class Recorder
4
+ @test_suite_level_visibility_enabled: bool
5
+ @enabled: bool
6
+
4
7
  @environment_tags: Hash[String, String]
5
8
  @local_context: Datadog::CI::Context::Local
9
+ @global_context: Datadog::CI::Context::Global
10
+
11
+ @null_span: Datadog::CI::NullSpan
6
12
 
7
13
  attr_reader environment_tags: Hash[String, String]
14
+ attr_reader test_suite_level_visibility_enabled: bool
15
+ attr_reader enabled: bool
16
+
17
+ def initialize: (?enabled: bool, ?test_suite_level_visibility_enabled: bool) -> void
8
18
 
9
- def trace_test: (String span_name, ?service_name: String?, ?operation_name: String, ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Test span) -> untyped } -> untyped
19
+ def trace_test: (String span_name, String test_suite_name, ?service: String?, ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Span span) -> untyped } -> untyped
10
20
 
11
21
  def trace: (String span_type, String span_name, ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Span span) -> untyped } -> untyped
12
22
 
23
+ def start_test_session: (?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::Span
24
+
25
+ def start_test_module: (String test_module_name, ?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::Span
26
+
27
+ def start_test_suite: (String test_suite_name, ?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::Span
28
+
29
+ def active_test_session: () -> Datadog::CI::TestSession?
30
+
31
+ def active_test_module: () -> Datadog::CI::TestModule?
32
+
33
+ def active_test_suite: (String test_suite_name) -> Datadog::CI::TestSuite?
34
+
13
35
  def active_test: () -> Datadog::CI::Test?
14
36
 
15
37
  def active_span: () -> Datadog::CI::Span?
16
38
 
17
39
  def deactivate_test: (Datadog::CI::Test test) -> void
18
40
 
41
+ def deactivate_test_session: () -> void
42
+
43
+ def deactivate_test_module: () -> void
44
+
45
+ def deactivate_test_suite: (String test_suite_name) -> void
46
+
19
47
  def create_datadog_span: (String span_name, ?span_options: Hash[untyped, untyped], ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Span span) -> untyped } -> untyped
20
48
 
21
49
  def set_trace_origin: (Datadog::Tracing::TraceOperation trace) -> untyped
@@ -24,7 +52,32 @@ module Datadog
24
52
 
25
53
  def build_test: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::Test
26
54
 
55
+ def build_test_session: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::TestSession
56
+
57
+ def build_test_module: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::TestModule
58
+
59
+ def build_test_suite: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::TestSuite
60
+
27
61
  def build_span: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::Span
62
+
63
+ def build_span_options: (String? service_name, String span_type, ?Hash[Symbol, untyped] other_options) -> Hash[Symbol, untyped]
64
+
65
+ def set_initial_tags: (Datadog::CI::Span ci_span, Hash[untyped, untyped] tags) -> void
66
+
67
+ # the type (Datadog::CI::TestSession | Datadog::Tracing::SpanOperation) screams of wrong/mising abstraction
68
+ def set_session_context: (Hash[untyped, untyped] tags, ?Datadog::CI::TestSession | Datadog::Tracing::SpanOperation? test_session) -> void
69
+
70
+ def set_suite_context: (Hash[untyped, untyped] tags, ?span: Datadog::Tracing::SpanOperation, ?name: String) -> void
71
+
72
+ def set_module_context: (Hash[untyped, untyped] tags, ?Datadog::CI::TestModule | Datadog::Tracing::SpanOperation? test_module) -> void
73
+
74
+ def null_span: () -> Datadog::CI::Span
75
+
76
+ def skip_tracing: (?untyped block) -> untyped
77
+
78
+ def start_datadog_tracer_span: (String span_name, Hash[untyped, untyped] span_options) ?{ (untyped) -> untyped } -> untyped
79
+
80
+ def set_inherited_globals: (Hash[untyped, untyped] tags) -> void
28
81
  end
29
82
  end
30
83
  end
@@ -7,8 +7,12 @@ module Datadog
7
7
 
8
8
  def initialize: (Datadog::Tracing::SpanOperation tracer_span) -> void
9
9
 
10
+ def id: () -> Integer
11
+
10
12
  def name: () -> String
11
13
 
14
+ def service: () -> String
15
+
12
16
  def passed!: () -> void
13
17
 
14
18
  def failed!: (?exception: untyped?) -> void
@@ -0,0 +1,6 @@
1
+ module Datadog
2
+ module CI
3
+ class TestModule < ConcurrentSpan
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ module Datadog
2
+ module CI
3
+ class TestSession < ConcurrentSpan
4
+ @inheritable_tags: Hash[untyped, untyped]
5
+
6
+ def inheritable_tags: () -> Hash[untyped, untyped]
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ module Datadog
2
+ module CI
3
+ class TestSuite < ConcurrentSpan
4
+ end
5
+ end
6
+ end
@@ -7,18 +7,28 @@ module Datadog
7
7
  MINIMUM_DURATION_NANO: 0
8
8
  MAXIMUM_DURATION_NANO: 9223372036854775807
9
9
 
10
+ CONTENT_FIELDS: Array[String | Hash[String, String]]
11
+ REQUIRED_FIELDS: Array[String]
12
+
10
13
  @content_fields_count: Integer
11
14
  @start: Integer
12
15
  @duration: Integer
16
+ @meta: Hash[untyped, untyped]
17
+ @errors: Hash[String, Set[String]]
18
+ @validated: bool
13
19
 
14
20
  attr_reader trace: Datadog::Tracing::TraceSegment
15
21
  attr_reader span: Datadog::Tracing::Span
22
+ attr_reader meta: Hash[untyped, untyped]
16
23
 
17
24
  def initialize: (Datadog::Tracing::TraceSegment trace, Datadog::Tracing::Span span) -> void
18
25
 
19
26
  def to_msgpack: (?untyped? packer) -> untyped
20
27
 
21
28
  def valid?: () -> bool
29
+ def validate!: () -> void
30
+ def validation_errors: () -> Hash[String, Set[String]]
31
+
22
32
  def content_fields: () -> ::Array[String | Hash[String, String]]
23
33
  def content_map_size: () -> Integer
24
34
 
@@ -30,6 +40,12 @@ module Datadog
30
40
 
31
41
  def parent_id: () -> String
32
42
 
43
+ def test_session_id: () -> Integer?
44
+
45
+ def test_module_id: () -> Integer?
46
+
47
+ def test_suite_id: () -> Integer?
48
+
33
49
  def type: () -> nil
34
50
 
35
51
  def version: () -> 1
@@ -46,8 +62,6 @@ module Datadog
46
62
 
47
63
  def duration: () -> Integer
48
64
 
49
- def meta: () -> Hash[String, untyped]
50
-
51
65
  def metrics: () -> Hash[String, untyped]
52
66
 
53
67
  def error: () -> Integer
@@ -56,15 +70,22 @@ module Datadog
56
70
 
57
71
  private
58
72
 
59
- def valid_start_time?: () -> bool
60
- def valid_duration?: () -> bool
61
- def required_fields_present?: () -> bool
73
+ def validate_start_time!: () -> void
74
+ def validate_duration!: () -> void
75
+ def validate_required_fields!: () -> void
76
+ def validate_required!: (String field) -> void
77
+ def validate_greater_than_or_equal!: (String field, Integer value) -> void
78
+ def validate_less_than_or_equal!: (String field, Integer value) -> void
79
+ def add_error: (String field, String message) -> void
80
+
62
81
  def required_fields: () -> Array[String]
63
82
 
64
83
  def write_field: (untyped packer, String field_name, ?String? method) -> untyped
65
84
  def time_nano: (Time time) -> Integer
66
85
  def duration_nano: (Float duration) -> Integer
67
86
 
87
+ def to_integer: (String? value) -> Integer?
88
+
68
89
  def content_fields_count: () -> Integer
69
90
  end
70
91
  end
@@ -0,0 +1,13 @@
1
+ module Datadog
2
+ module CI
3
+ module TestVisibility
4
+ module Serializers
5
+ module Factories
6
+ module TestSuiteLevel
7
+ def self?.serializer: (Datadog::Tracing::TraceSegment trace, Datadog::Tracing::Span span) -> Datadog::CI::TestVisibility::Serializers::Base
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,26 @@
1
+ module Datadog
2
+ module CI
3
+ module TestVisibility
4
+ module Serializers
5
+ class TestModule < Base
6
+ CONTENT_FIELDS: Array[String | Hash[String, String]]
7
+ CONTENT_MAP_SIZE: Integer
8
+ REQUIRED_FIELDS: Array[String]
9
+
10
+ def content_fields: () -> Array[String | Hash[String, String]]
11
+ def content_map_size: () -> Integer
12
+
13
+ def type: () -> ::String
14
+
15
+ def name: () -> ::String
16
+
17
+ def resource: () -> ::String
18
+
19
+ private
20
+
21
+ def required_fields: () -> Array[String]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module Datadog
2
+ module CI
3
+ module TestVisibility
4
+ module Serializers
5
+ class TestSession < Base
6
+ CONTENT_FIELDS: Array[String | Hash[String, String]]
7
+ CONTENT_MAP_SIZE: Integer
8
+ REQUIRED_FIELDS: Array[String]
9
+
10
+ def content_fields: () -> Array[String | Hash[String, String]]
11
+ def content_map_size: () -> Integer
12
+
13
+ def type: () -> ::String
14
+
15
+ def name: () -> ::String
16
+
17
+ def resource: () -> ::String
18
+
19
+ private
20
+
21
+ def required_fields: () -> Array[String]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module Datadog
2
+ module CI
3
+ module TestVisibility
4
+ module Serializers
5
+ class TestSuite < Base
6
+ CONTENT_FIELDS: Array[String | Hash[String, String]]
7
+ CONTENT_MAP_SIZE: Integer
8
+ REQUIRED_FIELDS: Array[String]
9
+
10
+ def content_fields: () -> Array[String | Hash[String, String]]
11
+ def content_map_size: () -> Integer
12
+
13
+ def type: () -> ::String
14
+
15
+ def name: () -> ::String
16
+
17
+ def resource: () -> ::String
18
+
19
+ private
20
+
21
+ def required_fields: () -> Array[String]
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -11,7 +11,7 @@ module Datadog
11
11
  def content_fields: () -> Array[String | Hash[String, String]]
12
12
  def content_map_size: () -> Integer
13
13
 
14
- def type: () -> "test"
14
+ def type: () -> ::String
15
15
 
16
16
  def name: () -> ::String
17
17
 
@@ -0,0 +1,25 @@
1
+ module Datadog
2
+ module CI
3
+ module TestVisibility
4
+ module Serializers
5
+ class TestV2 < TestV1
6
+ CONTENT_FIELDS: ::Array[String | ::Hash[::String, String]]
7
+
8
+ CONTENT_MAP_SIZE: Integer
9
+
10
+ REQUIRED_FIELDS: ::Array[String]
11
+
12
+ def content_fields: () -> ::Array[String | ::Hash[::String, String]]
13
+
14
+ def content_map_size: () -> Integer
15
+
16
+ def version: () -> 2
17
+
18
+ private
19
+
20
+ def required_fields: () -> Array[String]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -4,19 +4,19 @@ module Datadog
4
4
  class Transport
5
5
  DEFAULT_MAX_PAYLOAD_SIZE: Integer
6
6
 
7
- attr_reader serializers_factory: singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestLevel)
7
+ attr_reader serializers_factory: singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestLevel) | singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestSuiteLevel)
8
8
  attr_reader dd_env: String?
9
9
  attr_reader api: Datadog::CI::Transport::Api::Base
10
10
  attr_reader max_payload_size: Integer
11
11
 
12
12
  @dd_env: String?
13
- @serializers_factory: singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestLevel)
13
+ @serializers_factory: singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestLevel) | singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestSuiteLevel)
14
14
  @max_payload_size: Integer
15
15
 
16
16
  def initialize: (
17
17
  api: Datadog::CI::Transport::Api::Base,
18
18
  ?dd_env: ::String?,
19
- ?serializers_factory: singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestLevel),
19
+ ?serializers_factory: singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestLevel) | singleton(Datadog::CI::TestVisibility::Serializers::Factories::TestSuiteLevel),
20
20
  ?max_payload_size: Integer
21
21
  ) -> void
22
22
 
@@ -0,0 +1,11 @@
1
+ module Datadog
2
+ module CI
3
+ module Utils
4
+ module TestRun
5
+ self.@command: String
6
+
7
+ def self.command: () -> String
8
+ end
9
+ end
10
+ end
11
+ end
data/sig/datadog/ci.rbs CHANGED
@@ -1,17 +1,33 @@
1
1
  module Datadog
2
2
  module CI
3
- def self.trace_test: (String span_name, ?service_name: String?, ?operation_name: String, ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Test test) -> untyped } -> untyped
3
+ def self.trace_test: (String test_name, String test_suite_name, ?service: String?, ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Span test) -> untyped } -> untyped
4
4
 
5
- def self.start_test: (String span_name, ?service_name: String?, ?operation_name: String, ?tags: Hash[untyped, untyped]) -> Datadog::CI::Test
5
+ def self.start_test: (String test_name, String test_suite_name, ?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::Span
6
+
7
+ def self.start_test_session: (?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::Span
8
+
9
+ def self.start_test_module: (String test_module_name, ?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::Span
10
+
11
+ def self.start_test_suite: (String test_suite_name, ?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::Span
6
12
 
7
13
  def self.trace: (String span_type, String span_name, ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Span span) -> untyped } -> untyped
8
14
 
15
+ def self.active_test_session: () -> Datadog::CI::TestSession?
16
+
17
+ def self.active_test_module: () -> Datadog::CI::TestModule?
18
+
9
19
  def self.active_test: () -> Datadog::CI::Test?
10
20
 
11
21
  def self.active_span: (String span_type) -> Datadog::CI::Span?
12
22
 
13
23
  def self.deactivate_test: (Datadog::CI::Test test) -> void
14
24
 
25
+ def self.deactivate_test_session: () -> void
26
+
27
+ def self.deactivate_test_module: () -> void
28
+
29
+ def self.deactivate_test_suite: (String test_suite_name) -> void
30
+
15
31
  def self.components: () -> Datadog::CI::Configuration::Components
16
32
 
17
33
  def self.recorder: () -> Datadog::CI::Recorder
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog-ci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.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-11-21 00:00:00.000000000 Z
11
+ date: 2023-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -42,8 +42,10 @@ files:
42
42
  - NOTICE
43
43
  - README.md
44
44
  - lib/datadog/ci.rb
45
+ - lib/datadog/ci/concurrent_span.rb
45
46
  - lib/datadog/ci/configuration/components.rb
46
47
  - lib/datadog/ci/configuration/settings.rb
48
+ - lib/datadog/ci/context/global.rb
47
49
  - lib/datadog/ci/context/local.rb
48
50
  - lib/datadog/ci/contrib/cucumber/configuration/settings.rb
49
51
  - lib/datadog/ci/contrib/cucumber/ext.rb
@@ -89,14 +91,23 @@ files:
89
91
  - lib/datadog/ci/ext/test.rb
90
92
  - lib/datadog/ci/ext/transport.rb
91
93
  - lib/datadog/ci/extensions.rb
94
+ - lib/datadog/ci/null_span.rb
92
95
  - lib/datadog/ci/recorder.rb
93
96
  - lib/datadog/ci/span.rb
94
97
  - lib/datadog/ci/test.rb
98
+ - lib/datadog/ci/test_module.rb
99
+ - lib/datadog/ci/test_session.rb
100
+ - lib/datadog/ci/test_suite.rb
95
101
  - lib/datadog/ci/test_visibility/flush.rb
96
102
  - lib/datadog/ci/test_visibility/serializers/base.rb
97
103
  - lib/datadog/ci/test_visibility/serializers/factories/test_level.rb
104
+ - lib/datadog/ci/test_visibility/serializers/factories/test_suite_level.rb
98
105
  - lib/datadog/ci/test_visibility/serializers/span.rb
106
+ - lib/datadog/ci/test_visibility/serializers/test_module.rb
107
+ - lib/datadog/ci/test_visibility/serializers/test_session.rb
108
+ - lib/datadog/ci/test_visibility/serializers/test_suite.rb
99
109
  - lib/datadog/ci/test_visibility/serializers/test_v1.rb
110
+ - lib/datadog/ci/test_visibility/serializers/test_v2.rb
100
111
  - lib/datadog/ci/test_visibility/transport.rb
101
112
  - lib/datadog/ci/transport/api/base.rb
102
113
  - lib/datadog/ci/transport/api/builder.rb
@@ -105,11 +116,14 @@ files:
105
116
  - lib/datadog/ci/transport/gzip.rb
106
117
  - lib/datadog/ci/transport/http.rb
107
118
  - lib/datadog/ci/utils/git.rb
119
+ - lib/datadog/ci/utils/test_run.rb
108
120
  - lib/datadog/ci/utils/url.rb
109
121
  - lib/datadog/ci/version.rb
110
122
  - sig/datadog/ci.rbs
123
+ - sig/datadog/ci/concurrent_span.rbs
111
124
  - sig/datadog/ci/configuration/components.rbs
112
125
  - sig/datadog/ci/configuration/settings.rbs
126
+ - sig/datadog/ci/context/global.rbs
113
127
  - sig/datadog/ci/context/local.rbs
114
128
  - sig/datadog/ci/contrib/cucumber/configuration/settings.rbs
115
129
  - sig/datadog/ci/contrib/cucumber/ext.rbs
@@ -155,14 +169,23 @@ files:
155
169
  - sig/datadog/ci/ext/test.rbs
156
170
  - sig/datadog/ci/ext/transport.rbs
157
171
  - sig/datadog/ci/extensions.rbs
172
+ - sig/datadog/ci/null_span.rbs
158
173
  - sig/datadog/ci/recorder.rbs
159
174
  - sig/datadog/ci/span.rbs
160
175
  - sig/datadog/ci/test.rbs
176
+ - sig/datadog/ci/test_module.rbs
177
+ - sig/datadog/ci/test_session.rbs
178
+ - sig/datadog/ci/test_suite.rbs
161
179
  - sig/datadog/ci/test_visibility/flush.rbs
162
180
  - sig/datadog/ci/test_visibility/serializers/base.rbs
163
181
  - sig/datadog/ci/test_visibility/serializers/factories/test_level.rbs
182
+ - sig/datadog/ci/test_visibility/serializers/factories/test_suite_level.rbs
164
183
  - sig/datadog/ci/test_visibility/serializers/span.rbs
184
+ - sig/datadog/ci/test_visibility/serializers/test_module.rbs
185
+ - sig/datadog/ci/test_visibility/serializers/test_session.rbs
186
+ - sig/datadog/ci/test_visibility/serializers/test_suite.rbs
165
187
  - sig/datadog/ci/test_visibility/serializers/test_v1.rbs
188
+ - sig/datadog/ci/test_visibility/serializers/test_v2.rbs
166
189
  - sig/datadog/ci/test_visibility/transport.rbs
167
190
  - sig/datadog/ci/transport/api/base.rbs
168
191
  - sig/datadog/ci/transport/api/builder.rbs
@@ -171,6 +194,7 @@ files:
171
194
  - sig/datadog/ci/transport/gzip.rbs
172
195
  - sig/datadog/ci/transport/http.rbs
173
196
  - sig/datadog/ci/utils/git.rbs
197
+ - sig/datadog/ci/utils/test_run.rbs
174
198
  - sig/datadog/ci/utils/url.rbs
175
199
  - sig/datadog/ci/version.rbs
176
200
  homepage: https://github.com/DataDog/datadog-ci-rb