Skip to content

Commit bca0d1c

Browse files
committed
Support build scan link for CircleCI
Detects running on CircleCI and configures the build scan with a link to the CI build job URL.
1 parent 8ee255e commit bca0d1c

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

src/main/java/io/spring/ge/conventions/gradle/BuildScanConventions.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ private void tagCiOrLocal(BuildScanExtension buildScan) {
9898
}
9999

100100
private boolean isCi() {
101-
if (isBamboo() || isConcourse() || isJenkins()) {
101+
if (isBamboo() || isCircleCi() || isConcourse() || isJenkins()) {
102102
return true;
103103
}
104104
return false;
@@ -108,6 +108,10 @@ private boolean isBamboo() {
108108
return this.env.containsKey(BAMBOO_RESULTS_ENV_VAR);
109109
}
110110

111+
private boolean isCircleCi() {
112+
return this.env.containsKey("CIRCLECI");
113+
}
114+
111115
private boolean isConcourse() {
112116
return this.env.containsKey("CI");
113117
}
@@ -157,6 +161,9 @@ else if (isJenkins()) {
157161
buildScan.link("CI build", buildUrl);
158162
}
159163
}
164+
else if (isCircleCi()) {
165+
buildScan.link("CI build", this.env.get("CIRCLE_BUILD_URL"));
166+
}
160167
}
161168

162169
private RunResult getBranch() {

src/test/java/io/spring/ge/conventions/gradle/BuildScanConventionsTests.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,15 @@ void whenBambooResultEnvVarIsPresentThenBuildScanHasACiBuildLinkToIt() {
8181
assertThat(this.buildScan.links).containsEntry("CI build", "https://bamboo.example.com");
8282
}
8383

84+
@Test
85+
void whenCircleCiAndCircleBuildUrlEnvVarsArePresentThenBuildScanHasACiBuildLinkToIt() {
86+
Map<String, String> env = new HashMap<>();
87+
env.put("CIRCLECI", "true");
88+
env.put("CIRCLE_BUILD_URL", "https://circleci.example.com/gh/org/project/123");
89+
new BuildScanConventions(this.processRunner, env).execute(this.buildScan);
90+
assertThat(this.buildScan.links).containsEntry("CI build", "https://circleci.example.com/gh/org/project/123");
91+
}
92+
8493
@Test
8594
void whenJenkinsUrlAndBuildUrlEnvVarsArePresentThenBuildScanHasACiBuildLinkToBuildUrl() {
8695
Map<String, String> env = new HashMap<>();

0 commit comments

Comments
 (0)