Skip to content

Commit 62686f3

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 #2718
1 parent dda9e99 commit 62686f3

File tree

8 files changed

+85
-4
lines changed

8 files changed

+85
-4
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,5 @@ node_modules
3232
node
3333
package.json
3434
package-lock.json
35+
36+
.mvn/.gradle-enterprise

.mvn/extensions.xml

+13
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

+31
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.GRADLE_ENTERPRISE_CACHE_USERNAME}</username>
24+
<password>${env.GRADLE_ENTERPRISE_CACHE_PASSWORD}</password>
25+
</credentials>
26+
</server>
27+
<enabled>true</enabled>
28+
<storeEnabled>#{env['GRADLE_ENTERPRISE_CACHE_USERNAME'] != null and env['GRADLE_ENTERPRISE_CACHE_PASSWORD'] != null}</storeEnabled>
29+
</remote>
30+
</buildCache>
31+
</gradleEnterprise>

Jenkinsfile

+11-1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ pipeline {
3333

3434
environment {
3535
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
36+
DEVELOCITY_CACHE = credentials("${p['develocity.cache.credentials']}")
37+
DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
3638
}
3739

3840
steps {
@@ -61,6 +63,8 @@ pipeline {
6163
options { timeout(time: 30, unit: 'MINUTES') }
6264
environment {
6365
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
66+
DEVELOCITY_CACHE = credentials("${p['develocity.cache.credentials']}")
67+
DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
6468
}
6569
steps {
6670
script {
@@ -89,12 +93,18 @@ pipeline {
8993

9094
environment {
9195
ARTIFACTORY = credentials("${p['artifactory.credentials']}")
96+
DEVELOCITY_CACHE = credentials("${p['develocity.cache.credentials']}")
97+
DEVELOCITY_ACCESS_KEY = credentials("${p['develocity.access-key']}")
9298
}
9399

94100
steps {
95101
script {
96102
docker.image(p['docker.java.main.image']).inside(p['docker.java.inside.basic']) {
97-
sh 'MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -s settings.xml -Pci,artifactory -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch-non-root ' +
103+
sh 'MAVEN_OPTS="-Duser.name=spring-builds+jenkins -Duser.home=/tmp/jenkins-home" ' +
104+
'DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR} ' +
105+
'DEVELOCITY_CACHE_PASSWORD=${DEVELOCITY_CACHE_PSW} ' +
106+
'GRADLE_ENTERPRISE_ACCESS_KEY=${DEVELOCITY_ACCESS_KEY} ' +
107+
'./mvnw -s settings.xml -Pci,artifactory -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch-non-root ' +
98108
'-Dartifactory.server=https://repo.spring.io ' +
99109
"-Dartifactory.username=${ARTIFACTORY_USR} " +
100110
"-Dartifactory.password=${ARTIFACTORY_PSW} " +

README.adoc

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
image:https://spring.io/badges/spring-data-elasticsearch/ga.svg[Spring Data Elasticsearch,link=https://projects.spring.io/spring-data-elasticsearch#quick-start] image:https://spring.io/badges/spring-data-elasticsearch/snapshot.svg[Spring Data Elasticsearch,link=https://projects.spring.io/spring-data-elasticsearch#quick-start]
22

3-
= Spring Data for Elasticsearch image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-elasticsearch%2Fmain&subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-elasticsearch/] https://gitter.im/spring-projects/spring-data[image:https://badges.gitter.im/spring-projects/spring-data.svg[Gitter]]
3+
= Spring Data for Elasticsearch image:https://jenkins.spring.io/buildStatus/icon?job=spring-data-elasticsearch%2Fmain&subject=Build[link=https://jenkins.spring.io/view/SpringData/job/spring-data-elasticsearch/] 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 Elasticsearch"]
44

55
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.
66

ci/clean.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,11 @@
22

33
set -euo pipefail
44

5-
MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" \
5+
export DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR}
6+
export DEVELOCITY_CACHE_PASSWORD=${DEVELOCITY_CACHE_PSW}
7+
8+
# The environment variable to configure access key is still GRADLE_ENTERPRISE_ACCESS_KEY
9+
export GRADLE_ENTERPRISE_ACCESS_KEY=${DEVELOCITY_ACCESS_KEY}
10+
11+
MAVEN_OPTS="-Duser.name=spring-builds+jenkins -Duser.home=/tmp/jenkins-home" \
612
./mvnw -s settings.xml clean -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch

ci/verify.sh

+7-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ set -euo pipefail
55
mkdir -p /tmp/jenkins-home/.m2/spring-data-elasticsearch
66
chown -R 1001:1001 .
77

8-
MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" \
8+
export DEVELOCITY_CACHE_USERNAME=${DEVELOCITY_CACHE_USR}
9+
export DEVELOCITY_CACHE_PASSWORD=${DEVELOCITY_CACHE_PSW}
10+
11+
# The environment variable to configure access key is still GRADLE_ENTERPRISE_ACCESS_KEY
12+
export GRADLE_ENTERPRISE_ACCESS_KEY=${DEVELOCITY_ACCESS_KEY}
13+
14+
MAVEN_OPTS="-Duser.name=spring-builds+jenkins -Duser.home=/tmp/jenkins-home" \
915
./mvnw -s settings.xml \
1016
-P${PROFILE} clean dependency:list verify -Dsort -U -B -Dmaven.repo.local=/tmp/jenkins-home/.m2/spring-data-elasticsearch

pom.xml

+13
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,19 @@
391391
<groupId>org.apache.maven.plugins</groupId>
392392
<artifactId>maven-assembly-plugin</artifactId>
393393
</plugin>
394+
<plugin>
395+
<groupId>org.apache.maven.plugins</groupId>
396+
<artifactId>maven-compiler-plugin</artifactId>
397+
<configuration>
398+
<annotationProcessorPaths>
399+
<path>
400+
<groupId>org.apache.logging.log4j</groupId>
401+
<artifactId>log4j-core</artifactId>
402+
<version>${log4j}</version>
403+
</path>
404+
</annotationProcessorPaths>
405+
</configuration>
406+
</plugin>
394407
</plugins>
395408
</build>
396409

0 commit comments

Comments
 (0)