datadog-ci 1.25.0 → 1.27.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +41 -2
  3. data/ext/datadog_ci_native/ci.c +5 -3
  4. data/ext/datadog_ci_native/datadog_common.c +64 -0
  5. data/ext/datadog_ci_native/datadog_common.h +60 -0
  6. data/ext/datadog_ci_native/datadog_cov.c +13 -65
  7. data/ext/datadog_ci_native/datadog_method_inspect.c +22 -0
  8. data/ext/datadog_ci_native/datadog_method_inspect.h +4 -0
  9. data/ext/datadog_ci_native/imemo_helpers.c +16 -0
  10. data/ext/datadog_ci_native/imemo_helpers.h +32 -0
  11. data/ext/datadog_ci_native/iseq_collector.c +65 -0
  12. data/ext/datadog_ci_native/iseq_collector.h +6 -0
  13. data/ext/datadog_ci_native/ruby_internal.h +48 -0
  14. data/lib/datadog/ci/code_coverage/component.rb +55 -0
  15. data/lib/datadog/ci/code_coverage/null_component.rb +24 -0
  16. data/lib/datadog/ci/code_coverage/transport.rb +66 -0
  17. data/lib/datadog/ci/configuration/components.rb +19 -2
  18. data/lib/datadog/ci/configuration/settings.rb +26 -2
  19. data/lib/datadog/ci/contrib/minitest/helpers.rb +3 -3
  20. data/lib/datadog/ci/contrib/minitest/parallel_executor_minitest_6.rb +0 -7
  21. data/lib/datadog/ci/contrib/minitest/test.rb +3 -3
  22. data/lib/datadog/ci/contrib/rspec/example.rb +50 -10
  23. data/lib/datadog/ci/contrib/rspec/example_group.rb +63 -31
  24. data/lib/datadog/ci/contrib/simplecov/ext.rb +2 -0
  25. data/lib/datadog/ci/contrib/simplecov/patcher.rb +2 -0
  26. data/lib/datadog/ci/contrib/simplecov/report_uploader.rb +59 -0
  27. data/lib/datadog/ci/ext/environment/providers/github_actions.rb +65 -2
  28. data/lib/datadog/ci/ext/environment.rb +10 -0
  29. data/lib/datadog/ci/ext/settings.rb +3 -0
  30. data/lib/datadog/ci/ext/telemetry.rb +5 -0
  31. data/lib/datadog/ci/ext/test.rb +0 -5
  32. data/lib/datadog/ci/ext/transport.rb +4 -0
  33. data/lib/datadog/ci/git/cli.rb +59 -1
  34. data/lib/datadog/ci/remote/component.rb +6 -1
  35. data/lib/datadog/ci/remote/library_settings.rb +8 -0
  36. data/lib/datadog/ci/source_code/constant_resolver.rb +43 -0
  37. data/lib/datadog/ci/{utils/source_code.rb → source_code/method_inspect.rb} +3 -3
  38. data/lib/datadog/ci/source_code/path_filter.rb +33 -0
  39. data/lib/datadog/ci/source_code/static_dependencies.rb +71 -0
  40. data/lib/datadog/ci/source_code/static_dependencies_extractor.rb +237 -0
  41. data/lib/datadog/ci/test.rb +27 -18
  42. data/lib/datadog/ci/test_management/component.rb +9 -0
  43. data/lib/datadog/ci/test_management/null_component.rb +8 -0
  44. data/lib/datadog/ci/test_optimisation/component.rb +202 -20
  45. data/lib/datadog/ci/test_optimisation/null_component.rb +19 -5
  46. data/lib/datadog/ci/test_suite.rb +16 -21
  47. data/lib/datadog/ci/test_visibility/component.rb +1 -2
  48. data/lib/datadog/ci/test_visibility/known_tests.rb +59 -6
  49. data/lib/datadog/ci/transport/api/agentless.rb +8 -1
  50. data/lib/datadog/ci/transport/api/base.rb +21 -0
  51. data/lib/datadog/ci/transport/api/builder.rb +5 -1
  52. data/lib/datadog/ci/transport/api/evp_proxy.rb +8 -0
  53. data/lib/datadog/ci/version.rb +1 -1
  54. metadata +19 -4
  55. data/ext/datadog_ci_native/datadog_source_code.c +0 -28
  56. data/ext/datadog_ci_native/datadog_source_code.h +0 -3
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.25.0
4
+ version: 1.27.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
@@ -72,11 +72,18 @@ files:
72
72
  - README.md
73
73
  - exe/ddcirb
74
74
  - ext/datadog_ci_native/ci.c
75
+ - ext/datadog_ci_native/datadog_common.c
76
+ - ext/datadog_ci_native/datadog_common.h
75
77
  - ext/datadog_ci_native/datadog_cov.c
76
78
  - ext/datadog_ci_native/datadog_cov.h
77
- - ext/datadog_ci_native/datadog_source_code.c
78
- - ext/datadog_ci_native/datadog_source_code.h
79
+ - ext/datadog_ci_native/datadog_method_inspect.c
80
+ - ext/datadog_ci_native/datadog_method_inspect.h
79
81
  - ext/datadog_ci_native/extconf.rb
82
+ - ext/datadog_ci_native/imemo_helpers.c
83
+ - ext/datadog_ci_native/imemo_helpers.h
84
+ - ext/datadog_ci_native/iseq_collector.c
85
+ - ext/datadog_ci_native/iseq_collector.h
86
+ - ext/datadog_ci_native/ruby_internal.h
80
87
  - lib/datadog/ci.rb
81
88
  - lib/datadog/ci/async_writer.rb
82
89
  - lib/datadog/ci/auto_instrument.rb
@@ -85,6 +92,9 @@ files:
85
92
  - lib/datadog/ci/cli/command/exec.rb
86
93
  - lib/datadog/ci/cli/command/skippable_tests_percentage.rb
87
94
  - lib/datadog/ci/cli/command/skippable_tests_percentage_estimate.rb
95
+ - lib/datadog/ci/code_coverage/component.rb
96
+ - lib/datadog/ci/code_coverage/null_component.rb
97
+ - lib/datadog/ci/code_coverage/transport.rb
88
98
  - lib/datadog/ci/codeowners/matcher.rb
89
99
  - lib/datadog/ci/codeowners/parser.rb
90
100
  - lib/datadog/ci/codeowners/rule.rb
@@ -165,6 +175,7 @@ files:
165
175
  - lib/datadog/ci/contrib/simplecov/ext.rb
166
176
  - lib/datadog/ci/contrib/simplecov/integration.rb
167
177
  - lib/datadog/ci/contrib/simplecov/patcher.rb
178
+ - lib/datadog/ci/contrib/simplecov/report_uploader.rb
168
179
  - lib/datadog/ci/contrib/simplecov/result_extractor.rb
169
180
  - lib/datadog/ci/ext/app_types.rb
170
181
  - lib/datadog/ci/ext/dd_test.rb
@@ -223,6 +234,11 @@ files:
223
234
  - lib/datadog/ci/remote/library_settings_client.rb
224
235
  - lib/datadog/ci/remote/null_component.rb
225
236
  - lib/datadog/ci/remote/slow_test_retries.rb
237
+ - lib/datadog/ci/source_code/constant_resolver.rb
238
+ - lib/datadog/ci/source_code/method_inspect.rb
239
+ - lib/datadog/ci/source_code/path_filter.rb
240
+ - lib/datadog/ci/source_code/static_dependencies.rb
241
+ - lib/datadog/ci/source_code/static_dependencies_extractor.rb
226
242
  - lib/datadog/ci/span.rb
227
243
  - lib/datadog/ci/test.rb
228
244
  - lib/datadog/ci/test_discovery/component.rb
@@ -293,7 +309,6 @@ files:
293
309
  - lib/datadog/ci/utils/git.rb
294
310
  - lib/datadog/ci/utils/parsing.rb
295
311
  - lib/datadog/ci/utils/rum.rb
296
- - lib/datadog/ci/utils/source_code.rb
297
312
  - lib/datadog/ci/utils/stateful.rb
298
313
  - lib/datadog/ci/utils/telemetry.rb
299
314
  - lib/datadog/ci/utils/test_run.rb
@@ -1,28 +0,0 @@
1
- #include <ruby.h>
2
-
3
- // These structs and functions are not exported by MRI because they are part of
4
- // the internal API. We declare them here to use them via dynamic linking.
5
- typedef struct rb_iseq_struct rb_iseq_t;
6
- const rb_iseq_t *rb_iseqw_to_iseq(VALUE iseqw);
7
- void rb_iseq_code_location(const rb_iseq_t *, int *first_lineno,
8
- int *first_column, int *last_lineno,
9
- int *last_column);
10
-
11
- static VALUE last_line_from_iseq(VALUE self, VALUE iseqw) {
12
- const rb_iseq_t *iseq = rb_iseqw_to_iseq(iseqw);
13
-
14
- int line;
15
- rb_iseq_code_location(iseq, NULL, NULL, &line, NULL);
16
-
17
- return INT2NUM(line);
18
- }
19
-
20
- void Init_datadog_source_code(void) {
21
- VALUE mDatadog = rb_define_module("Datadog");
22
- VALUE mCI = rb_define_module_under(mDatadog, "CI");
23
- VALUE mUtils = rb_define_module_under(mCI, "Utils");
24
- VALUE mSourceCode = rb_define_module_under(mUtils, "SourceCode");
25
-
26
- rb_define_singleton_method(mSourceCode, "_native_last_line_from_iseq",
27
- last_line_from_iseq, 1);
28
- }
@@ -1,3 +0,0 @@
1
- #pragma once
2
-
3
- void Init_datadog_source_code(void);