-
Notifications
You must be signed in to change notification settings - Fork 331
Expand file tree
/
Copy pathCodefreshInfo.java
More file actions
96 lines (83 loc) · 3.02 KB
/
CodefreshInfo.java
File metadata and controls
96 lines (83 loc) · 3.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package datadog.trace.civisibility.ci;
import static datadog.trace.api.git.GitUtils.isTagReference;
import static datadog.trace.api.git.GitUtils.normalizeBranch;
import static datadog.trace.api.git.GitUtils.normalizeTag;
import datadog.trace.api.civisibility.telemetry.tag.Provider;
import datadog.trace.api.git.CommitInfo;
import datadog.trace.api.git.GitInfo;
import datadog.trace.api.git.PersonInfo;
import datadog.trace.civisibility.ci.env.CiEnvironment;
import javax.annotation.Nonnull;
public class CodefreshInfo implements CIProviderInfo {
// https://codefresh.io/docs/docs/pipelines/variables/#system-variables
public static final String CODEFRESH = "CF_BUILD_ID";
public static final String CODEFRESH_PROVIDER_NAME = "codefresh";
public static final String CF_STEP_NAME = "CF_STEP_NAME";
public static final String CF_PIPELINE_NAME = "CF_PIPELINE_NAME";
public static final String CF_BUILD_URL = "CF_BUILD_URL";
private static final String CF_BRANCH = "CF_BRANCH";
private static final String CF_REVISION = "CF_REVISION";
private static final String CF_COMMIT_MESSAGE = "CF_COMMIT_MESSAGE";
private static final String CF_COMMIT_AUTHOR = "CF_COMMIT_AUTHOR";
private static final String CF_PULL_REQUEST_NUMBER = "CF_PULL_REQUEST_NUMBER";
private static final String CF_PULL_REQUEST_TARGET_BRANCH = "CF_PULL_REQUEST_TARGET";
private final CiEnvironment environment;
CodefreshInfo(CiEnvironment environment) {
this.environment = environment;
}
@Override
public GitInfo buildCIGitInfo() {
return new GitInfo(
null,
buildGitBranch(),
buildGitTag(),
new CommitInfo(
environment.get(CF_REVISION),
new PersonInfo(environment.get(CF_COMMIT_AUTHOR), null),
PersonInfo.NOOP,
environment.get(CF_COMMIT_MESSAGE)));
}
@Nonnull
@Override
public PullRequestInfo buildPullRequestInfo() {
return new PullRequestInfo(
normalizeBranch(environment.get(CF_PULL_REQUEST_TARGET_BRANCH)),
null,
null,
environment.get(CF_PULL_REQUEST_NUMBER));
}
private String buildGitBranch() {
String gitBranchOrTag = getGitBranchOrTag();
if (!isTagReference(gitBranchOrTag)) {
return normalizeBranch(gitBranchOrTag);
} else {
return null;
}
}
private String buildGitTag() {
String gitBranchOrTag = getGitBranchOrTag();
if (isTagReference(gitBranchOrTag)) {
return normalizeTag(gitBranchOrTag);
} else {
return null;
}
}
private String getGitBranchOrTag() {
return environment.get(CF_BRANCH);
}
@Override
public CIInfo buildCIInfo() {
return CIInfo.builder(environment)
.ciProviderName(CODEFRESH_PROVIDER_NAME)
.ciPipelineId(environment.get(CODEFRESH))
.ciPipelineName(environment.get(CF_PIPELINE_NAME))
.ciPipelineUrl(environment.get(CF_BUILD_URL))
.ciJobName(environment.get(CF_STEP_NAME))
.ciEnvVars(CODEFRESH)
.build();
}
@Override
public Provider getProvider() {
return Provider.CODEFRESH;
}
}