Skip to content

Commit 014f0d2

Browse files
Report bazel as provider in telemetry for payload-in-files mode (#11207)
feat: introduce bazel support to test optimization fix: environment variable access refactor: extract common dto logic Merge branch 'master' into daniel.mohedano/bazel-support feat: telemetry fix: TEST_UNDECLARED_OUTPUTS_DIR access feat: unit tests fix: manifest read feat: lazy start of suites for bazel runner fix: traceId conversion using jsonValue instead of regular value fix: avoid double reporting due to bazel's custome test runner fix: consider bazel mode as agentless for span processing and protocols fix: import chore: cleanup comments chore: cleanup fix: master changes Merge branch 'master' into daniel.mohedano/bazel-support feat: bazel provider in telemetry chore: spotless fix: configs Merge branch 'daniel.mohedano/bazel-support' into daniel.mohedano/bazel-telemetry-provider Merge branch 'master' into daniel.mohedano/bazel-telemetry-provider Merge branch 'master' into daniel.mohedano/bazel-telemetry-provider nit: remove redundant check Co-authored-by: daniel.mohedano <daniel.mohedano@datadoghq.com>
1 parent 16c6a5f commit 014f0d2

3 files changed

Lines changed: 44 additions & 0 deletions

File tree

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package datadog.trace.civisibility.ci;
2+
3+
import datadog.trace.api.civisibility.telemetry.tag.Provider;
4+
import datadog.trace.api.git.GitInfo;
5+
import javax.annotation.Nonnull;
6+
7+
/**
8+
* Provider strategy used when Bazel payload-in-files mode is active. The orchestrating Bazel rule
9+
* is responsible for collecting CI/git information and enriching the test spans downstream (e.g.
10+
* combining with the underlying CI provider to produce {@code bazel/github}). This strategy only
11+
* surfaces {@link Provider#BAZEL} for telemetry so the rule can confirm that the agent detected the
12+
* mode; no environment or git data is read here.
13+
*/
14+
class BazelInfo implements CIProviderInfo {
15+
16+
@Override
17+
public GitInfo buildCIGitInfo() {
18+
return GitInfo.NOOP;
19+
}
20+
21+
@Override
22+
public CIInfo buildCIInfo() {
23+
return CIInfo.NOOP;
24+
}
25+
26+
@Nonnull
27+
@Override
28+
public PullRequestInfo buildPullRequestInfo() {
29+
return PullRequestInfo.EMPTY;
30+
}
31+
32+
@Override
33+
public Provider getProvider() {
34+
return Provider.BAZEL;
35+
}
36+
}

dd-java-agent/agent-ci-visibility/src/main/java/datadog/trace/civisibility/ci/CIProviderInfoFactory.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package datadog.trace.civisibility.ci;
22

33
import datadog.trace.api.Config;
4+
import datadog.trace.api.civisibility.config.BazelMode;
45
import datadog.trace.civisibility.ci.env.CiEnvironment;
56
import java.nio.file.Path;
67

@@ -21,6 +22,12 @@ public CIProviderInfoFactory(Config config, CiEnvironment environment) {
2122
}
2223

2324
public CIProviderInfo createCIProviderInfo(Path currentPath) {
25+
// bazel rule supplies CI/git data downstream
26+
BazelMode bazelMode = BazelMode.get();
27+
if (bazelMode.isPayloadFilesEnabled()) {
28+
return new BazelInfo();
29+
}
30+
2431
if (!config.isCiVisibilityCiProviderIntegrationEnabled()) {
2532
return new UnknownCIInfo(environment, targetFolder, currentPath);
2633
}

internal-api/src/main/java/datadog/trace/api/civisibility/telemetry/tag/Provider.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ public enum Provider implements TagValue {
77
APPVEYOR,
88
AWS,
99
AZP,
10+
BAZEL,
1011
BITBUCKET,
1112
BITRISE,
1213
BUILDKITE,

0 commit comments

Comments
 (0)