Skip to content

Commit 91196a6

Browse files
erichaagdevgregturn
authored andcommitted
Connect build to ge.spring.io.
This change publishes a build scan to ge.spring.io for every local build from an authenticated Spring committer and for CI where appropriate access tokens are available. The build will not fail if publishing fails. This change also allows the build to benefit from local and remote build caching, providing faster builds for all contributors. Additionally, the project will have access to all features of Gradle Enterprise such as: - Dashboards to view all historical build scans, along with performance trends over time - Build failure analytics for enhanced investigation and diagnosis of build failures - Test failure analytics to better understand trends and causes around slow, failing, and flaky tests See #540
1 parent 004ef81 commit 91196a6

File tree

5 files changed

+67
-4
lines changed

5 files changed

+67
-4
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ node
1313
package.json
1414
package-lock.json
1515
build/
16+
.mvn/.gradle-enterprise

.mvn/extensions.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<extensions>
3+
<extension>
4+
<groupId>com.gradle</groupId>
5+
<artifactId>gradle-enterprise-maven-extension</artifactId>
6+
<version>1.19.2</version>
7+
</extension>
8+
<extension>
9+
<groupId>com.gradle</groupId>
10+
<artifactId>common-custom-user-data-maven-extension</artifactId>
11+
<version>1.12.4</version>
12+
</extension>
13+
</extensions>

.mvn/gradle-enterprise.xml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2+
<gradleEnterprise
3+
xmlns="https://www.gradle.com/gradle-enterprise-maven" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="https://www.gradle.com/gradle-enterprise-maven https://www.gradle.com/schema/gradle-enterprise-maven.xsd">
5+
<server>
6+
<url>https://ge.spring.io</url>
7+
</server>
8+
<buildScan>
9+
<backgroundBuildScanUpload>false</backgroundBuildScanUpload>
10+
<captureGoalInputFiles>true</captureGoalInputFiles>
11+
<publishIfAuthenticated>true</publishIfAuthenticated>
12+
<obfuscation>
13+
<ipAddresses>#{{'0.0.0.0'}}</ipAddresses>
14+
</obfuscation>
15+
</buildScan>
16+
<buildCache>
17+
<local>
18+
<enabled>true</enabled>
19+
</local>
20+
<remote>
21+
<server>
22+
<credentials>
23+
<username>${env.DEVELOCITY_CACHE_USERNAME}</username>
24+
<password>${env.DEVELOCITY_CACHE_PASSWORD}</password>
25+
</credentials>
26+
</server>
27+
<enabled>true</enabled>
28+
<storeEnabled>#{env['DEVELOCITY_CACHE_USERNAME'] != null and env['DEVELOCITY_CACHE_PASSWORD'] != null}</storeEnabled>
29+
</remote>
30+
</buildCache>
31+
</gradleEnterprise>

Jenkinsfile

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,17 @@ pipeline {
3232
options { timeout(time: 30, unit: 'MINUTES') }
3333
environment {
3434
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
35+
DEVELOCITY_CACHE = credentials("${p['develocity.cache.credentials']}")
36+
DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
3537
}
3638
steps {
3739
script {
3840
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
39-
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml clean dependency:list test -Dsort -U -B'
41+
sh 'MAVEN_OPTS="-Duser.name=spring-builds+jenkins -Duser.home=/tmp/jenkins-home" ' +
42+
'DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR} ' +
43+
'DEVELOCITY_CACHE_PASSWORD=${DEVELOCITY_CACHE_PSW} ' +
44+
'GRADLE_ENTERPRISE_ACCESS_KEY=${DEVELOCITY_ACCESS_KEY} ' +
45+
'./mvnw -s settings.xml clean dependency:list test -Dsort -U -B'
4046
}
4147
}
4248
}
@@ -58,11 +64,17 @@ pipeline {
5864
options { timeout(time: 30, unit: 'MINUTES') }
5965
environment {
6066
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
67+
DEVELOCITY_CACHE = credentials("${p['develocity.cache.credentials']}")
68+
DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
6169
}
6270
steps {
6371
script {
6472
docker.image(p['docker.java.next.image']).inside(p['docker.java.inside.basic']) {
65-
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml clean dependency:list test -Dsort -U -B'
73+
sh 'MAVEN_OPTS="-Duser.name=spring-builds+jenkins -Duser.home=/tmp/jenkins-home" ' +
74+
'DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR} ' +
75+
'DEVELOCITY_CACHE_PASSWORD=${DEVELOCITY_CACHE_PSW} ' +
76+
'GRADLE_ENTERPRISE_ACCESS_KEY=${DEVELOCITY_ACCESS_KEY} ' +
77+
'./mvnw -s settings.xml clean dependency:list test -Dsort -U -B'
6678
}
6779
}
6880
}
@@ -85,12 +97,18 @@ pipeline {
8597

8698
environment {
8799
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
100+
DEVELOCITY_CACHE = credentials("${p['develocity.cache.credentials']}")
101+
DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
88102
}
89103

90104
steps {
91105
script {
92106
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
93-
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory ' +
107+
sh 'MAVEN_OPTS="-Duser.name=spring-builds+jenkins -Duser.home=/tmp/jenkins-home" ' +
108+
'DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR} ' +
109+
'DEVELOCITY_CACHE_PASSWORD=${DEVELOCITY_CACHE_PSW} ' +
110+
'GRADLE_ENTERPRISE_ACCESS_KEY=${DEVELOCITY_ACCESS_KEY} ' +
111+
'./mvnw -s settings.xml -Pci,artifactory ' +
94112
'-Dartifactory.server=https://repo.spring.io ' +
95113
"-Dartifactory.username=${ARTIFACTORY_USR} " +
96114
"-Dartifactory.password=${ARTIFACTORY_PSW} " +

README.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
= Spring Data KeyValue image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-keyvalue%2Fmain&subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-keyvalue/] https://gitter.im/spring-projects/spring-data[image:https://badges.gitter.im/spring-projects/spring-data.svg[Gitter]]
1+
= Spring Data KeyValue image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-keyvalue%2Fmain&subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-keyvalue/] https://gitter.im/spring-projects/spring-data[image:https://badges.gitter.im/spring-projects/spring-data.svg[Gitter]] image:https://img.shields.io/badge/Revved%20up%20by-Gradle%20Enterprise-06A0CE?logo=Gradle&labelColor=02303A["Revved up by Gradle Enterprise", link="https://ge.spring.io/scans?search.rootProjectNames=Spring Data KeyValue"]
22

33
The primary goal of the https://projects.spring.io/spring-data[Spring Data] project is to make it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services.
44

0 commit comments

Comments
 (0)