datadog-ci 1.0.0.beta2 → 1.0.0.beta4

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 (31) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +106 -72
  3. data/ext/datadog_cov/datadog_cov.c +36 -10
  4. data/lib/datadog/ci/configuration/components.rb +21 -2
  5. data/lib/datadog/ci/configuration/settings.rb +9 -3
  6. data/lib/datadog/ci/contrib/cucumber/formatter.rb +4 -1
  7. data/lib/datadog/ci/contrib/minitest/patcher.rb +2 -2
  8. data/lib/datadog/ci/contrib/minitest/test.rb +105 -0
  9. data/lib/datadog/ci/contrib/rspec/example.rb +2 -0
  10. data/lib/datadog/ci/contrib/rspec/knapsack_pro/extension.rb +30 -0
  11. data/lib/datadog/ci/contrib/rspec/knapsack_pro/runner.rb +57 -0
  12. data/lib/datadog/ci/contrib/rspec/patcher.rb +17 -1
  13. data/lib/datadog/ci/ext/environment.rb +5 -0
  14. data/lib/datadog/ci/ext/settings.rb +1 -0
  15. data/lib/datadog/ci/ext/test.rb +3 -1
  16. data/lib/datadog/ci/itr/coverage/writer.rb +7 -1
  17. data/lib/datadog/ci/itr/runner.rb +30 -6
  18. data/lib/datadog/ci/itr/skippable.rb +4 -2
  19. data/lib/datadog/ci/span.rb +7 -0
  20. data/lib/datadog/ci/test.rb +18 -0
  21. data/lib/datadog/ci/test_visibility/serializers/base.rb +3 -2
  22. data/lib/datadog/ci/test_visibility/serializers/factories/test_level.rb +3 -3
  23. data/lib/datadog/ci/test_visibility/serializers/factories/test_suite_level.rb +6 -6
  24. data/lib/datadog/ci/test_visibility/serializers/test_v2.rb +14 -2
  25. data/lib/datadog/ci/test_visibility/transport.rb +5 -1
  26. data/lib/datadog/ci/transport/remote_settings_api.rb +4 -2
  27. data/lib/datadog/ci/utils/bundle.rb +26 -0
  28. data/lib/datadog/ci/utils/test_run.rb +12 -0
  29. data/lib/datadog/ci/version.rb +1 -1
  30. metadata +10 -7
  31. data/lib/datadog/ci/contrib/minitest/hooks.rb +0 -77
@@ -1,77 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../../ext/test"
4
- require_relative "../../git/local_repository"
5
- require_relative "ext"
6
- require_relative "helpers"
7
-
8
- module Datadog
9
- module CI
10
- module Contrib
11
- module Minitest
12
- # Lifecycle hooks to instrument Minitest::Test
13
- module Hooks
14
- def before_setup
15
- super
16
- return unless datadog_configuration[:enabled]
17
-
18
- test_suite_name = Helpers.test_suite_name(self.class, name)
19
- if Helpers.parallel?(self.class)
20
- test_suite_name = "#{test_suite_name} (#{name} concurrently)"
21
-
22
- # for parallel execution we need to start a new test suite for each test
23
- CI.start_test_suite(test_suite_name)
24
- end
25
-
26
- source_file, line_number = method(name).source_location
27
-
28
- test_span = CI.start_test(
29
- name,
30
- test_suite_name,
31
- tags: {
32
- CI::Ext::Test::TAG_FRAMEWORK => Ext::FRAMEWORK,
33
- CI::Ext::Test::TAG_FRAMEWORK_VERSION => CI::Contrib::Minitest::Integration.version.to_s,
34
- CI::Ext::Test::TAG_SOURCE_FILE => Git::LocalRepository.relative_to_root(source_file),
35
- CI::Ext::Test::TAG_SOURCE_START => line_number.to_s
36
- },
37
- service: datadog_configuration[:service_name]
38
- )
39
- skip(CI::Ext::Test::ITR_TEST_SKIP_REASON) if test_span&.skipped_by_itr?
40
- end
41
-
42
- def after_teardown
43
- test_span = CI.active_test
44
- return super unless test_span
45
-
46
- finish_with_result(test_span, result_code)
47
- if Helpers.parallel?(self.class)
48
- finish_with_result(test_span.test_suite, result_code)
49
- end
50
-
51
- super
52
- end
53
-
54
- private
55
-
56
- def finish_with_result(span, result_code)
57
- return unless span
58
-
59
- case result_code
60
- when "."
61
- span.passed!
62
- when "E", "F"
63
- span.failed!(exception: failure)
64
- when "S"
65
- span.skipped!(reason: failure.message)
66
- end
67
- span.finish
68
- end
69
-
70
- def datadog_configuration
71
- Datadog.configuration.ci[:minitest]
72
- end
73
- end
74
- end
75
- end
76
- end
77
- end