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