datadog-ci 1.32.0 → 1.33.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9525584d2c9951d35efe82ecfead3c45e104ced47bddaa5c11146147dfab1ed8
4
- data.tar.gz: 438719f7fb308e58196321706bf03beeda21c717875e9a23d88027a485d5dfba
3
+ metadata.gz: 6e5dd4e5fdf647baf9134e9fdcc5eb6d1215c48b08bf1905dd69e731a8ebe18e
4
+ data.tar.gz: 851eadff7367e69480490eea9fb7e5e074c2099008de2537c07efba2de9366bf
5
5
  SHA512:
6
- metadata.gz: d1537eb0f893513d6ba2b2ccfacecfd2ff424c8f0d1f84ef27045d03d0d4963046b8c1df0611c7360cfbdd6a6a893e74804377b725b6439a559e27fe8e9ce57b
7
- data.tar.gz: 31d30f06434ec6305d17000499879d1133a7f472ba01c3300d30effe2abf770b0f7bb002390a984baf9b77febbc3e4dc9b9390f249a2c81a66aa68ecd37bf344
6
+ metadata.gz: 22bedcab49da1df468ae63d217b160d7e3a976a5b722aaa012622564629d8760afc39165b47dc8be7454b406db8e073be46524d0de02fa2b6fd13a4e685713c8
7
+ data.tar.gz: 9affe9fe044871139755c3fbbb0b28146bc07c2b36ed79627ad0db67ee254764fbca12bebafc9a317224bd275f9c60e5a978a3c526b8a11c0a4a92150152f104
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [1.33.0] - 2026-06-19
4
+
5
+ ### Added
6
+
7
+ * Allow overriding runtime tags ([#527][])
8
+
3
9
  ## [1.32.0] - 2026-06-08
4
10
 
5
11
  ### Changed
@@ -653,7 +659,8 @@ Currently test suite level visibility is not used by our instrumentation: it wil
653
659
 
654
660
  - Ruby versions < 2.7 no longer supported ([#8][])
655
661
 
656
- [Unreleased]: https://github.com/DataDog/datadog-ci-rb/compare/v1.32.0...main
662
+ [Unreleased]: https://github.com/DataDog/datadog-ci-rb/compare/v1.33.0...main
663
+ [1.33.0]: https://github.com/DataDog/datadog-ci-rb/compare/v1.32.0...v1.33.0
657
664
  [1.32.0]: https://github.com/DataDog/datadog-ci-rb/compare/v1.31.0...v1.32.0
658
665
  [1.31.0]: https://github.com/DataDog/datadog-ci-rb/compare/v1.30.0...v1.31.0
659
666
  [1.30.0]: https://github.com/DataDog/datadog-ci-rb/compare/v1.29.0...v1.30.0
@@ -925,4 +932,5 @@ Currently test suite level visibility is not used by our instrumentation: it wil
925
932
  [#515]: https://github.com/DataDog/datadog-ci-rb/issues/515
926
933
  [#516]: https://github.com/DataDog/datadog-ci-rb/issues/516
927
934
  [#521]: https://github.com/DataDog/datadog-ci-rb/issues/521
928
- [#522]: https://github.com/DataDog/datadog-ci-rb/issues/522
935
+ [#522]: https://github.com/DataDog/datadog-ci-rb/issues/522
936
+ [#527]: https://github.com/DataDog/datadog-ci-rb/issues/527
@@ -37,6 +37,7 @@ require_relative "../test_tracing/transport"
37
37
  require_relative "../transport/adapters/telemetry_webmock_safe_adapter"
38
38
  require_relative "../transport/api/builder"
39
39
  require_relative "../utils/parsing"
40
+ require_relative "../utils/runtime_tags_overrides"
40
41
  require_relative "../utils/test_run"
41
42
  require_relative "../async_writer"
42
43
  require_relative "../worker"
@@ -169,6 +170,7 @@ module Datadog
169
170
  test_suite_level_visibility_enabled: !settings.ci.force_test_level_visibility,
170
171
  logical_test_session_name: settings.ci.test_session_name,
171
172
  known_tests_client: build_known_tests_client(settings, test_visibility_api),
173
+ runtime_tags_overrides: Utils::RuntimeTagsOverrides.parse(settings.ci.runtime_tags_overrides),
172
174
  context_service_uri: settings.ci.test_visibility_drb_server_uri
173
175
  )
174
176
 
@@ -213,6 +213,11 @@ module Datadog
213
213
  o.default true
214
214
  end
215
215
 
216
+ option :runtime_tags_overrides do |o|
217
+ o.type :string, nilable: true
218
+ o.env CI::Ext::Settings::ENV_RUNTIME_TAGS
219
+ end
220
+
216
221
  define_method(:instrument) do |integration_name, options = {}, &block|
217
222
  return unless enabled
218
223
 
@@ -32,6 +32,7 @@ module Datadog
32
32
  ENV_AUTO_INSTRUMENTATION_PROVIDER = "DD_CIVISIBILITY_AUTO_INSTRUMENTATION_PROVIDER"
33
33
  ENV_TIA_STATIC_DEPENDENCIES_TRACKING_ENABLED = "DD_TEST_OPTIMIZATION_TIA_STATIC_DEPS_COVERAGE_ENABLED"
34
34
  ENV_CODE_COVERAGE_REPORT_UPLOAD_ENABLED = "DD_CIVISIBILITY_CODE_COVERAGE_REPORT_UPLOAD_ENABLED"
35
+ ENV_RUNTIME_TAGS = "DD_TEST_OPTIMIZATION_RUNTIME_TAGS"
35
36
 
36
37
  # Source: https://docs.datadoghq.com/getting_started/site/
37
38
  DD_SITE_ALLOWLIST = %w[
@@ -51,7 +51,6 @@ module Datadog
51
51
  def build_constant_path(symbol_array)
52
52
  symbol_array
53
53
  .select { |part| part.is_a?(Symbol) }
54
- .map(&:to_s)
55
54
  .join("::")
56
55
  end
57
56
 
@@ -37,11 +37,12 @@ module Datadog
37
37
  test_suite_level_visibility_enabled: false,
38
38
  codeowners: Codeowners::Parser.new(Git::LocalRepository.root).parse,
39
39
  logical_test_session_name: nil,
40
+ runtime_tags_overrides: {},
40
41
  context_service_uri: nil
41
42
  )
42
43
  @test_suite_level_visibility_enabled = test_suite_level_visibility_enabled
43
44
 
44
- @context = Context.new(test_tracing_component: self)
45
+ @context = Context.new(test_tracing_component: self, runtime_tags_overrides: runtime_tags_overrides)
45
46
 
46
47
  @codeowners = codeowners
47
48
  @logical_test_session_name = logical_test_session_name
@@ -30,8 +30,9 @@ module Datadog
30
30
  class Context
31
31
  attr_reader :total_tests_count, :tests_skipped_by_tia_count
32
32
 
33
- def initialize(test_tracing_component:)
33
+ def initialize(test_tracing_component:, runtime_tags_overrides: {})
34
34
  @test_tracing_component = test_tracing_component
35
+ @runtime_tags_overrides = runtime_tags_overrides
35
36
 
36
37
  @fiber_local_context = Store::FiberLocal.new
37
38
  @process_context = Store::Process.new
@@ -239,6 +240,7 @@ module Datadog
239
240
  ci_span.set_default_tags
240
241
  ci_span.set_environment_runtime_tags
241
242
 
243
+ ci_span.set_tags(@runtime_tags_overrides) unless @runtime_tags_overrides.empty?
242
244
  ci_span.set_tags(tags)
243
245
  ci_span.set_tags(@environment_tags)
244
246
 
@@ -0,0 +1,44 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ require_relative "../ext/test"
6
+
7
+ module Datadog
8
+ module CI
9
+ module Utils
10
+ module RuntimeTagsOverrides
11
+ TAGS = [
12
+ Ext::Test::TAG_OS_PLATFORM,
13
+ Ext::Test::TAG_OS_ARCHITECTURE,
14
+ Ext::Test::TAG_OS_VERSION,
15
+ Ext::Test::TAG_RUNTIME_NAME,
16
+ Ext::Test::TAG_RUNTIME_VERSION
17
+ ].freeze
18
+
19
+ def self.parse(value)
20
+ return {} if value.nil? || value.to_s.strip.empty?
21
+
22
+ parsed = JSON.parse(value.to_s)
23
+ unless parsed.is_a?(Hash)
24
+ Datadog.logger.warn("Invalid runtime tag overrides configuration: expected JSON object")
25
+ return {}
26
+ end
27
+
28
+ parsed.each_with_object({}) do |(key, tag_value), tags|
29
+ next unless TAGS.include?(key)
30
+ next if tag_value.nil?
31
+
32
+ normalized_value = tag_value.to_s.strip
33
+ next if normalized_value.empty?
34
+
35
+ tags[key] = normalized_value
36
+ end
37
+ rescue JSON::ParserError => e
38
+ Datadog.logger.warn("Invalid runtime tag overrides configuration: #{e.message}")
39
+ {}
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -4,7 +4,7 @@ module Datadog
4
4
  module CI
5
5
  module VERSION
6
6
  MAJOR = 1
7
- MINOR = 32
7
+ MINOR = 33
8
8
  PATCH = 0
9
9
  PRE = nil
10
10
  BUILD = nil
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog-ci
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.32.0
4
+ version: 1.33.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
@@ -319,6 +319,7 @@ files:
319
319
  - lib/datadog/ci/utils/json.rb
320
320
  - lib/datadog/ci/utils/parsing.rb
321
321
  - lib/datadog/ci/utils/rum.rb
322
+ - lib/datadog/ci/utils/runtime_tags_overrides.rb
322
323
  - lib/datadog/ci/utils/stateful.rb
323
324
  - lib/datadog/ci/utils/telemetry.rb
324
325
  - lib/datadog/ci/utils/test_run.rb