datadog-ci 1.0.0.beta1 → 1.0.0.beta3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|