datadog-ci 1.9.0 → 1.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +27 -2
- data/lib/datadog/ci/codeowners/matcher.rb +1 -1
- data/lib/datadog/ci/contrib/rspec/example.rb +58 -24
- data/lib/datadog/ci/contrib/rspec/example_group.rb +18 -1
- data/lib/datadog/ci/ext/telemetry.rb +8 -1
- data/lib/datadog/ci/ext/test.rb +3 -0
- data/lib/datadog/ci/remote/library_settings_client.rb +4 -1
- data/lib/datadog/ci/test.rb +8 -7
- data/lib/datadog/ci/test_optimisation/component.rb +9 -4
- data/lib/datadog/ci/test_optimisation/skippable_percentage/calculator.rb +1 -1
- data/lib/datadog/ci/test_session.rb +1 -1
- data/lib/datadog/ci/test_visibility/context.rb +5 -0
- data/lib/datadog/ci/test_visibility/serializers/base.rb +4 -0
- data/lib/datadog/ci/test_visibility/serializers/test_session.rb +1 -1
- data/lib/datadog/ci/transport/event_platform_transport.rb +1 -1
- data/lib/datadog/ci/utils/configuration.rb +4 -0
- data/lib/datadog/ci/version.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da95176899cf1e2427fadba7e177e85a5906c8c8131026e4b6e7fd3ec7ffae91
|
4
|
+
data.tar.gz: 1e948e2a734e658b9cbff55c9e1d0a57164d422a921124d17e73879a8da96361
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4bbc47cd1af4024c4822f3c3686f728d50a87b729c8316b3e80648e370fc3c274bcd551644aad0a17203927d2ca08957af400447000ee25485a6f17f1cbaec62
|
7
|
+
data.tar.gz: f8b0fb90d93076341c88a44d4e08f867318996b350c10a498101d5893de32b70811110b78c093a8ba13b88ea6d53ba011013995fd0a11e5ba61b035d84950063
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [1.11.0] - 2025-01-02
|
4
|
+
|
5
|
+
### Changed
|
6
|
+
|
7
|
+
* bump maximum Ruby version to 3.4 ([#275][])
|
8
|
+
* Use logical test session name as part of test session span's resource instead of test command ([#271][])
|
9
|
+
|
10
|
+
### Fixed
|
11
|
+
|
12
|
+
* set the max payload size for events to 4.5MB ([#272][])
|
13
|
+
* Fix inline comments handling when parsing CODEOWNERS files ([#267][])
|
14
|
+
|
15
|
+
## [1.10.0] - 2024-12-05
|
16
|
+
|
17
|
+
### Added
|
18
|
+
|
19
|
+
* Skip before(:all) context hooks when all examples are skipped ([#262][])
|
20
|
+
|
3
21
|
## [1.9.0] - 2024-11-26
|
4
22
|
|
5
23
|
### Added
|
@@ -362,7 +380,9 @@ Currently test suite level visibility is not used by our instrumentation: it wil
|
|
362
380
|
|
363
381
|
- Ruby versions < 2.7 no longer supported ([#8][])
|
364
382
|
|
365
|
-
[Unreleased]: https://github.com/DataDog/datadog-ci-rb/compare/v1.
|
383
|
+
[Unreleased]: https://github.com/DataDog/datadog-ci-rb/compare/v1.11.0...main
|
384
|
+
[1.11.0]: https://github.com/DataDog/datadog-ci-rb/compare/v1.10.0...v1.11.0
|
385
|
+
[1.10.0]: https://github.com/DataDog/datadog-ci-rb/compare/v1.9.0...v1.10.0
|
366
386
|
[1.9.0]: https://github.com/DataDog/datadog-ci-rb/compare/v1.8.1...v1.9.0
|
367
387
|
[1.8.1]: https://github.com/DataDog/datadog-ci-rb/compare/v1.8.0...v1.8.1
|
368
388
|
[1.8.0]: https://github.com/DataDog/datadog-ci-rb/compare/v1.7.0...v1.8.0
|
@@ -521,4 +541,9 @@ Currently test suite level visibility is not used by our instrumentation: it wil
|
|
521
541
|
[#244]: https://github.com/DataDog/datadog-ci-rb/issues/244
|
522
542
|
[#248]: https://github.com/DataDog/datadog-ci-rb/issues/248
|
523
543
|
[#250]: https://github.com/DataDog/datadog-ci-rb/issues/250
|
524
|
-
[#259]: https://github.com/DataDog/datadog-ci-rb/issues/259
|
544
|
+
[#259]: https://github.com/DataDog/datadog-ci-rb/issues/259
|
545
|
+
[#262]: https://github.com/DataDog/datadog-ci-rb/issues/262
|
546
|
+
[#267]: https://github.com/DataDog/datadog-ci-rb/issues/267
|
547
|
+
[#271]: https://github.com/DataDog/datadog-ci-rb/issues/271
|
548
|
+
[#272]: https://github.com/DataDog/datadog-ci-rb/issues/272
|
549
|
+
[#275]: https://github.com/DataDog/datadog-ci-rb/issues/275
|
@@ -21,42 +21,25 @@ module Datadog
|
|
21
21
|
return super if ::RSpec.configuration.dry_run? && !datadog_configuration[:dry_run_enabled]
|
22
22
|
return super unless datadog_configuration[:enabled]
|
23
23
|
|
24
|
-
|
25
|
-
if metadata[:description].empty?
|
26
|
-
# for unnamed it blocks this appends something like "example at ./spec/some_spec.rb:10"
|
27
|
-
test_name << " #{description}"
|
28
|
-
end
|
29
|
-
|
30
|
-
test_suite_description = fetch_top_level_example_group[:description]
|
31
|
-
suite_name = "#{test_suite_description} at #{metadata[:example_group][:rerun_file_path]}"
|
32
|
-
|
33
|
-
# remove example group description from test name to avoid duplication
|
34
|
-
test_name = test_name.sub(test_suite_description, "").strip
|
35
|
-
|
36
|
-
if ci_queue?
|
37
|
-
suite_name = "#{suite_name} (ci-queue running example [#{test_name}])"
|
38
|
-
ci_queue_test_span = test_visibility_component.start_test_suite(suite_name)
|
39
|
-
end
|
24
|
+
test_suite_span = test_visibility_component.start_test_suite(datadog_test_suite_name) if ci_queue?
|
40
25
|
|
41
26
|
# don't report test to RSpec::Core::Reporter until retries are done
|
42
27
|
@skip_reporting = true
|
43
28
|
|
44
29
|
test_retries_component.with_retries do
|
45
30
|
test_visibility_component.trace_test(
|
46
|
-
|
47
|
-
|
31
|
+
datadog_test_name,
|
32
|
+
datadog_test_suite_name,
|
48
33
|
tags: {
|
49
34
|
CI::Ext::Test::TAG_FRAMEWORK => Ext::FRAMEWORK,
|
50
35
|
CI::Ext::Test::TAG_FRAMEWORK_VERSION => datadog_integration.version.to_s,
|
51
36
|
CI::Ext::Test::TAG_SOURCE_FILE => Git::LocalRepository.relative_to_root(metadata[:file_path]),
|
52
37
|
CI::Ext::Test::TAG_SOURCE_START => metadata[:line_number].to_s,
|
53
|
-
CI::Ext::Test::TAG_PARAMETERS =>
|
54
|
-
metadata: {"scoped_id" => metadata[:scoped_id]}
|
55
|
-
)
|
38
|
+
CI::Ext::Test::TAG_PARAMETERS => datadog_test_parameters
|
56
39
|
},
|
57
40
|
service: datadog_configuration[:service_name]
|
58
41
|
) do |test_span|
|
59
|
-
test_span&.itr_unskippable! if
|
42
|
+
test_span&.itr_unskippable! if datadog_unskippable?
|
60
43
|
|
61
44
|
metadata[:skip] = CI::Ext::Test::ITR_TEST_SKIP_REASON if test_span&.skipped_by_itr?
|
62
45
|
|
@@ -87,8 +70,8 @@ module Datadog
|
|
87
70
|
end
|
88
71
|
end
|
89
72
|
|
90
|
-
# this is a special case for ci-queue, we need to finish the test suite span
|
91
|
-
|
73
|
+
# this is a special case for ci-queue, we need to finish the test suite span created for a single test
|
74
|
+
test_suite_span&.finish
|
92
75
|
|
93
76
|
# after retries are done, we can finally report the test to RSpec
|
94
77
|
@skip_reporting = false
|
@@ -106,6 +89,18 @@ module Datadog
|
|
106
89
|
super(::RSpec::Core::NullReporter)
|
107
90
|
end
|
108
91
|
|
92
|
+
def datadog_test_id
|
93
|
+
@datadog_test_id ||= Utils::TestRun.datadog_test_id(
|
94
|
+
datadog_test_name,
|
95
|
+
datadog_test_suite_name,
|
96
|
+
datadog_test_parameters
|
97
|
+
)
|
98
|
+
end
|
99
|
+
|
100
|
+
def datadog_unskippable?
|
101
|
+
!!metadata[CI::Ext::Test::ITR_UNSKIPPABLE_OPTION]
|
102
|
+
end
|
103
|
+
|
109
104
|
private
|
110
105
|
|
111
106
|
def fetch_top_level_example_group
|
@@ -129,6 +124,45 @@ module Datadog
|
|
129
124
|
Datadog.configuration.ci[:rspec]
|
130
125
|
end
|
131
126
|
|
127
|
+
def datadog_test_suite_description
|
128
|
+
@datadog_test_suite_description ||= fetch_top_level_example_group[:description]
|
129
|
+
end
|
130
|
+
|
131
|
+
def datadog_test_name
|
132
|
+
return @datadog_test_name if defined?(@datadog_test_name)
|
133
|
+
|
134
|
+
test_name = full_description.strip
|
135
|
+
if metadata[:description].empty?
|
136
|
+
# for unnamed it blocks this appends something like "example at ./spec/some_spec.rb:10"
|
137
|
+
test_name << " #{description}"
|
138
|
+
end
|
139
|
+
|
140
|
+
# remove example group description from test name to avoid duplication
|
141
|
+
test_name = test_name.sub(datadog_test_suite_description, "").strip
|
142
|
+
|
143
|
+
@datadog_test_name = test_name
|
144
|
+
end
|
145
|
+
|
146
|
+
def datadog_test_suite_name
|
147
|
+
return @datadog_test_suite_name if defined?(@datadog_test_suite_name)
|
148
|
+
|
149
|
+
suite_name = "#{datadog_test_suite_description} at #{metadata[:example_group][:rerun_file_path]}"
|
150
|
+
|
151
|
+
if ci_queue?
|
152
|
+
suite_name = "#{suite_name} (ci-queue running example [#{datadog_test_name}])"
|
153
|
+
end
|
154
|
+
|
155
|
+
@datadog_test_suite_name = suite_name
|
156
|
+
end
|
157
|
+
|
158
|
+
def datadog_test_parameters
|
159
|
+
return @datadog_test_parameters if defined?(@datadog_test_parameters)
|
160
|
+
|
161
|
+
@datadog_test_parameters = Utils::TestRun.test_parameters(
|
162
|
+
metadata: {"scoped_id" => metadata[:scoped_id]}
|
163
|
+
)
|
164
|
+
end
|
165
|
+
|
132
166
|
def test_visibility_component
|
133
167
|
Datadog.send(:components).test_visibility
|
134
168
|
end
|
@@ -18,10 +18,17 @@ module Datadog
|
|
18
18
|
def run(reporter = ::RSpec::Core::NullReporter)
|
19
19
|
return super if ::RSpec.configuration.dry_run? && !datadog_configuration[:dry_run_enabled]
|
20
20
|
return super unless datadog_configuration[:enabled]
|
21
|
+
|
22
|
+
# skip the context hooks if all descendant example are going to be skipped
|
23
|
+
# IMPORTANT: must happen before top_level? check because skipping hooks must happen
|
24
|
+
# even if it is a nested context
|
25
|
+
metadata[:skip] = true if all_examples_skipped_by_datadog?
|
26
|
+
|
27
|
+
# return early because we create Datadog::CI::TestSuite only for top-level example groups
|
21
28
|
return super unless top_level?
|
22
29
|
|
23
30
|
suite_name = "#{description} at #{file_path}"
|
24
|
-
test_suite = test_visibility_component
|
31
|
+
test_suite = test_visibility_component&.start_test_suite(
|
25
32
|
suite_name,
|
26
33
|
tags: {
|
27
34
|
CI::Ext::Test::TAG_SOURCE_FILE => Git::LocalRepository.relative_to_root(metadata[:file_path]),
|
@@ -47,6 +54,12 @@ module Datadog
|
|
47
54
|
|
48
55
|
private
|
49
56
|
|
57
|
+
def all_examples_skipped_by_datadog?
|
58
|
+
descendant_filtered_examples.all? do |example|
|
59
|
+
!example.datadog_unskippable? && test_optimisation_component&.skippable?(example)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
50
63
|
def datadog_configuration
|
51
64
|
Datadog.configuration.ci[:rspec]
|
52
65
|
end
|
@@ -54,6 +67,10 @@ module Datadog
|
|
54
67
|
def test_visibility_component
|
55
68
|
Datadog.send(:components).test_visibility
|
56
69
|
end
|
70
|
+
|
71
|
+
def test_optimisation_component
|
72
|
+
Datadog.send(:components).test_optimisation
|
73
|
+
end
|
57
74
|
end
|
58
75
|
end
|
59
76
|
end
|
@@ -69,6 +69,7 @@ module Datadog
|
|
69
69
|
TAG_BROWSER_DRIVER = "browser_driver"
|
70
70
|
TAG_IS_RUM = "is_rum"
|
71
71
|
TAG_IS_RETRY = "is_retry"
|
72
|
+
TAG_EARLY_FLAKE_DETECTION_ABORT_REASON = "early_flake_detection_abort_reason"
|
72
73
|
TAG_IS_NEW = "is_new"
|
73
74
|
TAG_LIBRARY = "library"
|
74
75
|
TAG_ENDPOINT = "endpoint"
|
@@ -78,12 +79,18 @@ module Datadog
|
|
78
79
|
TAG_REQUEST_COMPRESSED = "rq_compressed"
|
79
80
|
TAG_RESPONSE_COMPRESSED = "rs_compressed"
|
80
81
|
TAG_COMMAND = "command"
|
82
|
+
# tags for git_requests.settings_response metric
|
81
83
|
TAG_COVERAGE_ENABLED = "coverage_enabled"
|
84
|
+
TAG_ITR_ENABLED = "itr_enabled"
|
82
85
|
TAG_ITR_SKIP_ENABLED = "itrskip_enabled"
|
86
|
+
TAG_REQUIRE_GIT = "require_git"
|
83
87
|
TAG_EARLY_FLAKE_DETECTION_ENABLED = "early_flake_detection_enabled"
|
84
|
-
|
88
|
+
TAG_FLAKY_TEST_RETRIES_ENABLED = "flaky_test_retries_enabled"
|
89
|
+
# tags for test_session metric
|
85
90
|
TAG_PROVIDER = "provider"
|
86
91
|
TAG_AUTO_INJECTED = "auto_injected"
|
92
|
+
TAG_AGENTLESS_LOG_SUBMISSION_ENABLED = "agentless_log_submission_enabled"
|
93
|
+
TAG_FAIL_FAST_TEST_ORDER_ENABLED = "fail_fast_test_order_enabled"
|
87
94
|
|
88
95
|
module EventType
|
89
96
|
TEST = "test"
|
data/lib/datadog/ci/ext/test.rb
CHANGED
@@ -74,6 +74,9 @@ module Datadog
|
|
74
74
|
# common tags that are serialized directly in msgpack header in metadata field
|
75
75
|
METADATA_TAG_TEST_SESSION_NAME = "test_session.name"
|
76
76
|
|
77
|
+
# internal tag indicating if datadog service was configured by the user
|
78
|
+
TAG_USER_PROVIDED_TEST_SERVICE = "_dd.test.is_user_provided_service"
|
79
|
+
|
77
80
|
# internal metric with the number of virtual CPUs
|
78
81
|
METRIC_CPU_COUNT = "_dd.host.vcpu_count"
|
79
82
|
|
@@ -59,7 +59,10 @@ module Datadog
|
|
59
59
|
{
|
60
60
|
Ext::Telemetry::TAG_COVERAGE_ENABLED => library_settings.code_coverage_enabled?.to_s,
|
61
61
|
Ext::Telemetry::TAG_ITR_SKIP_ENABLED => library_settings.tests_skipping_enabled?.to_s,
|
62
|
-
Ext::Telemetry::TAG_EARLY_FLAKE_DETECTION_ENABLED => library_settings.early_flake_detection_enabled?.to_s
|
62
|
+
Ext::Telemetry::TAG_EARLY_FLAKE_DETECTION_ENABLED => library_settings.early_flake_detection_enabled?.to_s,
|
63
|
+
Ext::Telemetry::TAG_FLAKY_TEST_RETRIES_ENABLED => library_settings.flaky_test_retries_enabled?.to_s,
|
64
|
+
Ext::Telemetry::TAG_ITR_ENABLED => library_settings.itr_enabled?.to_s,
|
65
|
+
Ext::Telemetry::TAG_REQUIRE_GIT => library_settings.require_git?.to_s
|
63
66
|
}
|
64
67
|
)
|
65
68
|
|
data/lib/datadog/ci/test.rb
CHANGED
@@ -17,6 +17,11 @@ module Datadog
|
|
17
17
|
get_tag(Ext::Test::TAG_NAME)
|
18
18
|
end
|
19
19
|
|
20
|
+
# @return [String] the test id according to Datadog's test impact analysis.
|
21
|
+
def datadog_test_id
|
22
|
+
@datadog_test_id ||= Utils::TestRun.datadog_test_id(name, test_suite_name, parameters)
|
23
|
+
end
|
24
|
+
|
20
25
|
# Finishes the current test.
|
21
26
|
# @return [void]
|
22
27
|
def finish
|
@@ -140,22 +145,18 @@ module Datadog
|
|
140
145
|
|
141
146
|
# @internal
|
142
147
|
def any_retry_passed?
|
143
|
-
!!test_suite&.any_test_retry_passed?(
|
148
|
+
!!test_suite&.any_test_retry_passed?(datadog_test_id)
|
144
149
|
end
|
145
150
|
|
146
151
|
private
|
147
152
|
|
148
|
-
def test_id
|
149
|
-
@test_id ||= Utils::TestRun.datadog_test_id(name, test_suite_name, parameters)
|
150
|
-
end
|
151
|
-
|
152
153
|
def record_test_result(datadog_status)
|
153
154
|
# if this test was already executed in this test suite, mark it as retried
|
154
|
-
if test_suite&.test_executed?(
|
155
|
+
if test_suite&.test_executed?(datadog_test_id)
|
155
156
|
set_tag(Ext::Test::TAG_IS_RETRY, "true")
|
156
157
|
end
|
157
158
|
|
158
|
-
test_suite&.record_test_result(
|
159
|
+
test_suite&.record_test_result(datadog_test_id, datadog_status)
|
159
160
|
end
|
160
161
|
end
|
161
162
|
end
|
@@ -144,11 +144,16 @@ module Datadog
|
|
144
144
|
event
|
145
145
|
end
|
146
146
|
|
147
|
+
def skippable?(test)
|
148
|
+
return false if !enabled? || !skipping_tests?
|
149
|
+
|
150
|
+
@skippable_tests.include?(test.datadog_test_id)
|
151
|
+
end
|
152
|
+
|
147
153
|
def mark_if_skippable(test)
|
148
154
|
return if !enabled? || !skipping_tests?
|
149
155
|
|
150
|
-
|
151
|
-
if @skippable_tests.include?(datadog_test_id)
|
156
|
+
if skippable?(test)
|
152
157
|
if forked?
|
153
158
|
Datadog.logger.warn { "Intelligent test runner is not supported for forking test runners yet" }
|
154
159
|
return
|
@@ -156,9 +161,9 @@ module Datadog
|
|
156
161
|
|
157
162
|
test.set_tag(Ext::Test::TAG_ITR_SKIPPED_BY_ITR, "true")
|
158
163
|
|
159
|
-
Datadog.logger.debug { "Marked test as skippable: #{datadog_test_id}" }
|
164
|
+
Datadog.logger.debug { "Marked test as skippable: #{test.datadog_test_id}" }
|
160
165
|
else
|
161
|
-
Datadog.logger.debug { "Test is not skippable: #{datadog_test_id}" }
|
166
|
+
Datadog.logger.debug { "Test is not skippable: #{test.datadog_test_id}" }
|
162
167
|
end
|
163
168
|
end
|
164
169
|
|
@@ -66,7 +66,7 @@ module Datadog
|
|
66
66
|
cli_options_array = @rspec_cli_options + ["--dry-run", @spec_path]
|
67
67
|
|
68
68
|
rspec_config_options = ::RSpec::Core::ConfigurationOptions.new(cli_options_array)
|
69
|
-
devnull = File.new(
|
69
|
+
devnull = File.new(File::NULL, "w")
|
70
70
|
out = @verbose ? $stdout : devnull
|
71
71
|
err = @verbose ? $stderr : devnull
|
72
72
|
|
@@ -25,7 +25,7 @@ module Datadog
|
|
25
25
|
# Return the test session's name which is equal to test command used
|
26
26
|
# @return [String] the command for this test session.
|
27
27
|
def name
|
28
|
-
|
28
|
+
test_visibility.logical_test_session_name || "test_session"
|
29
29
|
end
|
30
30
|
|
31
31
|
# Return the test session's command used to run the tests
|
@@ -11,6 +11,7 @@ require_relative "../ext/app_types"
|
|
11
11
|
require_relative "../ext/environment"
|
12
12
|
require_relative "../ext/test"
|
13
13
|
|
14
|
+
require_relative "../utils/configuration"
|
14
15
|
require_relative "../utils/test_run"
|
15
16
|
|
16
17
|
require_relative "../span"
|
@@ -207,6 +208,10 @@ module Datadog
|
|
207
208
|
ci_span.set_tags(@environment_tags)
|
208
209
|
|
209
210
|
ci_span.set_metric(Ext::Test::METRIC_CPU_COUNT, Utils::TestRun.virtual_cpu_count)
|
211
|
+
ci_span.set_tag(
|
212
|
+
Ext::Test::TAG_USER_PROVIDED_TEST_SERVICE,
|
213
|
+
Utils::Configuration.service_name_provided_by_user?.to_s
|
214
|
+
)
|
210
215
|
end
|
211
216
|
|
212
217
|
# PROPAGATING CONTEXT FROM TOP-LEVEL TO THE LOWER LEVELS
|
@@ -31,7 +31,7 @@ module Datadog
|
|
31
31
|
end
|
32
32
|
|
33
33
|
def resource
|
34
|
-
"#{@span.get_tag(Ext::Test::TAG_FRAMEWORK)}.test_session.#{
|
34
|
+
"#{@span.get_tag(Ext::Test::TAG_FRAMEWORK)}.test_session.#{test_visibility.logical_test_session_name}"
|
35
35
|
end
|
36
36
|
|
37
37
|
private
|
@@ -9,6 +9,10 @@ module Datadog
|
|
9
9
|
def self.fetch_service_name(default)
|
10
10
|
Datadog.configuration.service_without_fallback || CI::Git::LocalRepository.repository_name || default
|
11
11
|
end
|
12
|
+
|
13
|
+
def self.service_name_provided_by_user?
|
14
|
+
!!Datadog.configuration.service_without_fallback
|
15
|
+
end
|
12
16
|
end
|
13
17
|
end
|
14
18
|
end
|
data/lib/datadog/ci/version.rb
CHANGED
@@ -4,7 +4,7 @@ module Datadog
|
|
4
4
|
module CI
|
5
5
|
module VERSION
|
6
6
|
MAJOR = 1
|
7
|
-
MINOR =
|
7
|
+
MINOR = 11
|
8
8
|
PATCH = 0
|
9
9
|
PRE = nil
|
10
10
|
BUILD = nil
|
@@ -22,7 +22,7 @@ module Datadog
|
|
22
22
|
# To allow testing with the next unreleased version of Ruby, the version check is performed
|
23
23
|
# as `< #{MAXIMUM_RUBY_VERSION}`, meaning prereleases of MAXIMUM_RUBY_VERSION are allowed
|
24
24
|
# but not stable MAXIMUM_RUBY_VERSION releases.
|
25
|
-
MAXIMUM_RUBY_VERSION = "3.
|
25
|
+
MAXIMUM_RUBY_VERSION = "3.5"
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
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: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Datadog, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: datadog
|
@@ -240,7 +240,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
240
240
|
version: 2.7.0
|
241
241
|
- - "<"
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: '3.
|
243
|
+
version: '3.5'
|
244
244
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
245
245
|
requirements:
|
246
246
|
- - ">="
|