Skip to content

Commit 7411f25

Browse files
committed
Use io.spring.gradle-enterprise-conventions
Adds support for build cache and build scans. Closes gh-8115
1 parent 7ad303f commit 7411f25

File tree

3 files changed

+123
-33
lines changed

3 files changed

+123
-33
lines changed

Jenkinsfile

Lines changed: 110 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,38 @@ properties(projectProperties)
88
def SUCCESS = hudson.model.Result.SUCCESS.toString()
99
currentBuild.result = SUCCESS
1010

11+
def GRADLE_ENTERPRISE_CACHE_USER = usernamePassword(credentialsId: 'gradle_enterprise_cache_user',
12+
passwordVariable: 'GRADLE_ENTERPRISE_CACHE_PASSWORD',
13+
usernameVariable: 'GRADLE_ENTERPRISE_CACHE_USERNAME')
14+
def GRADLE_ENTERPRISE_SECRET_ACCESS_KEY = string(credentialsId: 'gradle_enterprise_secret_access_key',
15+
variable: 'GRADLE_ENTERPRISE_ACCESS_KEY')
16+
def SPRING_SIGNING_SECRING = file(credentialsId: 'spring-signing-secring.gpg', variable: 'SIGNING_KEYRING_FILE')
17+
def SPRING_GPG_PASSPHRASE = string(credentialsId: 'spring-gpg-passphrase', variable: 'SIGNING_PASSWORD')
18+
def OSSRH_CREDENTIALS = usernamePassword(credentialsId: 'oss-token', passwordVariable: 'OSSRH_PASSWORD', usernameVariable: 'OSSRH_USERNAME')
19+
def ARTIFACTORY_CREDENTIALS = usernamePassword(credentialsId: '02bd1690-b54f-4c9f-819d-a77cb7a9822c', usernameVariable: 'ARTIFACTORY_USERNAME', passwordVariable: 'ARTIFACTORY_PASSWORD')
20+
def JENKINS_PRIVATE_SSH_KEY = file(credentialsId: 'docs.spring.io-jenkins_private_ssh_key', variable: 'DEPLOY_SSH_KEY')
21+
def SONAR_LOGIN_CREDENTIALS = string(credentialsId: 'spring-sonar.login', variable: 'SONAR_LOGIN')
22+
23+
def jdkEnv(String jdk = 'jdk8') {
24+
def jdkTool = tool(jdk)
25+
return "JAVA_HOME=${ jdkTool }"
26+
}
27+
1128
try {
1229
parallel check: {
1330
stage('Check') {
1431
node {
1532
checkout scm
1633
sh "git clean -dfx"
1734
try {
18-
withEnv(["JAVA_HOME=${ tool 'jdk8' }"]) {
19-
sh "./gradle check --stacktrace"
35+
withCredentials([GRADLE_ENTERPRISE_CACHE_USER,
36+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
37+
withEnv([jdkEnv(),
38+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
39+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
40+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
41+
sh "./gradlew check --stacktrace"
42+
}
2043
}
2144
} catch(Exception e) {
2245
currentBuild.result = 'FAILED: check'
@@ -32,9 +55,14 @@ try {
3255
node {
3356
checkout scm
3457
sh "git clean -dfx"
35-
withCredentials([string(credentialsId: 'spring-sonar.login', variable: 'SONAR_LOGIN')]) {
58+
withCredentials([SONAR_LOGIN_CREDENTIALS,
59+
GRADLE_ENTERPRISE_CACHE_USER,
60+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
3661
try {
37-
withEnv(["JAVA_HOME=${ tool 'jdk8' }"]) {
62+
withEnv([jdkEnv(),
63+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
64+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
65+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
3866
if ("master" == env.BRANCH_NAME) {
3967
sh "./gradlew sonarqube -PexcludeProjects='**/samples/**' -Dsonar.host.url=$SPRING_SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN --stacktrace"
4068
} else {
@@ -55,8 +83,14 @@ try {
5583
checkout scm
5684
sh "git clean -dfx"
5785
try {
58-
withEnv(["JAVA_HOME=${ tool 'jdk8' }"]) {
59-
sh "./gradle test -PforceMavenRepositories=snapshot -PspringVersion='5.+' -PreactorVersion=Dysprosium-BUILD-SNAPSHOT -PspringDataVersion=Lovelace-BUILD-SNAPSHOT -PlocksDisabled --stacktrace"
86+
withCredentials([GRADLE_ENTERPRISE_CACHE_USER,
87+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
88+
withEnv([jdkEnv(),
89+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
90+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
91+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
92+
sh "./gradlew test -PforceMavenRepositories=snapshot -PspringVersion='5.+' -PreactorVersion=Dysprosium-BUILD-SNAPSHOT -PspringDataVersion=Lovelace-BUILD-SNAPSHOT -PlocksDisabled --stacktrace"
93+
}
6094
}
6195
} catch(Exception e) {
6296
currentBuild.result = 'FAILED: snapshots'
@@ -71,8 +105,14 @@ try {
71105
checkout scm
72106
sh "git clean -dfx"
73107
try {
74-
withEnv(["JAVA_HOME=${ tool 'jdk9' }"]) {
75-
sh "./gradle test --stacktrace"
108+
withCredentials([GRADLE_ENTERPRISE_CACHE_USER,
109+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
110+
withEnv([jdkEnv("jdk9"),
111+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
112+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
113+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
114+
sh "./gradlew test --stacktrace"
115+
}
76116
}
77117
} catch(Exception e) {
78118
currentBuild.result = 'FAILED: jdk9'
@@ -87,8 +127,14 @@ try {
87127
checkout scm
88128
sh "git clean -dfx"
89129
try {
90-
withEnv(["JAVA_HOME=${ tool 'jdk10' }"]) {
91-
sh "./gradle test --stacktrace"
130+
withCredentials([GRADLE_ENTERPRISE_CACHE_USER,
131+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
132+
withEnv([jdkEnv("jdk10"),
133+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
134+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
135+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
136+
sh "./gradlew test --stacktrace"
137+
}
92138
}
93139
} catch(Exception e) {
94140
currentBuild.result = 'FAILED: jdk10'
@@ -103,8 +149,15 @@ try {
103149
checkout scm
104150
sh "git clean -dfx"
105151
try {
106-
withEnv(["JAVA_HOME=${ tool 'jdk11' }"]) {
107-
sh "./gradle test --stacktrace"
152+
153+
withCredentials([GRADLE_ENTERPRISE_CACHE_USER,
154+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
155+
withEnv([jdkEnv("jdk11"),
156+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
157+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
158+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
159+
sh "./gradlew test --stacktrace"
160+
}
108161
}
109162
} catch(Exception e) {
110163
currentBuild.result = 'FAILED: jdk11'
@@ -119,8 +172,14 @@ try {
119172
checkout scm
120173
sh "git clean -dfx"
121174
try {
122-
withEnv(["JAVA_HOME=${ tool 'openjdk12' }"]) {
123-
sh "./gradle test --stacktrace"
175+
withCredentials([GRADLE_ENTERPRISE_CACHE_USER,
176+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
177+
withEnv([jdkEnv("openjdk12"),
178+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
179+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
180+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
181+
sh "./gradlew test --stacktrace"
182+
}
124183
}
125184
} catch(Exception e) {
126185
currentBuild.result = 'FAILED: jdk12'
@@ -136,15 +195,17 @@ try {
136195
node {
137196
checkout scm
138197
sh "git clean -dfx"
139-
withCredentials([file(credentialsId: 'spring-signing-secring.gpg', variable: 'SIGNING_KEYRING_FILE')]) {
140-
withCredentials([string(credentialsId: 'spring-gpg-passphrase', variable: 'SIGNING_PASSWORD')]) {
141-
withCredentials([usernamePassword(credentialsId: 'oss-token', passwordVariable: 'OSSRH_PASSWORD', usernameVariable: 'OSSRH_USERNAME')]) {
142-
withCredentials([usernamePassword(credentialsId: '02bd1690-b54f-4c9f-819d-a77cb7a9822c', usernameVariable: 'ARTIFACTORY_USERNAME', passwordVariable: 'ARTIFACTORY_PASSWORD')]) {
143-
withEnv(["JAVA_HOME=${ tool 'jdk8' }"]) {
144-
sh "./gradlew deployArtifacts finalizeDeployArtifacts -Psigning.secretKeyRingFile=$SIGNING_KEYRING_FILE -Psigning.keyId=$SPRING_SIGNING_KEYID -Psigning.password='$SIGNING_PASSWORD' -PossrhUsername=$OSSRH_USERNAME -PossrhPassword=$OSSRH_PASSWORD -PartifactoryUsername=$ARTIFACTORY_USERNAME -PartifactoryPassword=$ARTIFACTORY_PASSWORD --stacktrace"
145-
}
146-
}
147-
}
198+
withCredentials([SPRING_SIGNING_SECRING,
199+
SPRING_GPG_PASSPHRASE,
200+
OSSRH_CREDENTIALS,
201+
ARTIFACTORY_CREDENTIALS,
202+
GRADLE_ENTERPRISE_CACHE_USER,
203+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
204+
withEnv([jdkEnv(),
205+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
206+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
207+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
208+
sh "./gradlew deployArtifacts finalizeDeployArtifacts -Psigning.secretKeyRingFile=$SIGNING_KEYRING_FILE -Psigning.keyId=$SPRING_SIGNING_KEYID -Psigning.password='$SIGNING_PASSWORD' -PossrhUsername=$OSSRH_USERNAME -PossrhPassword=$OSSRH_PASSWORD -PartifactoryUsername=$ARTIFACTORY_USERNAME -PartifactoryPassword=$ARTIFACTORY_PASSWORD --stacktrace"
148209
}
149210
}
150211
}
@@ -155,8 +216,16 @@ try {
155216
node {
156217
checkout scm
157218
sh "git clean -dfx"
158-
withCredentials([file(credentialsId: 'docs.spring.io-jenkins_private_ssh_key', variable: 'DEPLOY_SSH_KEY')]) {
159-
withEnv(["JAVA_HOME=${ tool 'jdk8' }"]) {
219+
withCredentials([JENKINS_PRIVATE_SSH_KEY,
220+
SPRING_GPG_PASSPHRASE,
221+
OSSRH_CREDENTIALS,
222+
ARTIFACTORY_CREDENTIALS,
223+
GRADLE_ENTERPRISE_CACHE_USER,
224+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
225+
withEnv([jdkEnv(),
226+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
227+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
228+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
160229
sh "./gradlew deployDocs -PdeployDocsSshKeyPath=$DEPLOY_SSH_KEY -PdeployDocsSshUsername=$SPRING_DOCS_USERNAME --stacktrace"
161230
}
162231
}
@@ -168,8 +237,16 @@ try {
168237
node {
169238
checkout scm
170239
sh "git clean -dfx"
171-
withCredentials([file(credentialsId: 'docs.spring.io-jenkins_private_ssh_key', variable: 'DEPLOY_SSH_KEY')]) {
172-
withEnv(["JAVA_HOME=${ tool 'jdk8' }"]) {
240+
withCredentials([JENKINS_PRIVATE_SSH_KEY,
241+
SPRING_GPG_PASSPHRASE,
242+
OSSRH_CREDENTIALS,
243+
ARTIFACTORY_CREDENTIALS,
244+
GRADLE_ENTERPRISE_CACHE_USER,
245+
GRADLE_ENTERPRISE_SECRET_ACCESS_KEY]) {
246+
withEnv([jdkEnv(),
247+
"GRADLE_ENTERPRISE_CACHE_USERNAME=${GRADLE_ENTERPRISE_CACHE_USERNAME}",
248+
"GRADLE_ENTERPRISE_CACHE_PASSWORD=${GRADLE_ENTERPRISE_CACHE_PASSWORD}",
249+
"GRADLE_ENTERPRISE_ACCESS_KEY=${GRADLE_ENTERPRISE_ACCESS_KEY}"]) {
173250
sh "./gradlew deploySchema -PdeployDocsSshKeyPath=$DEPLOY_SSH_KEY -PdeployDocsSshUsername=$SPRING_DOCS_USERNAME --stacktrace"
174251
}
175252
}
@@ -194,12 +271,12 @@ try {
194271
def subject = "${buildStatus}: Build ${env.JOB_NAME} ${env.BUILD_NUMBER} status is now ${buildStatus}"
195272
def details = """The build status changed to ${buildStatus}. For details see ${env.BUILD_URL}"""
196273

197-
emailext (
198-
subject: subject,
199-
body: details,
200-
recipientProviders: RECIPIENTS,
201-
to: "$SPRING_SECURITY_TEAM_EMAILS"
202-
)
274+
// emailext (
275+
// subject: subject,
276+
// body: details,
277+
// recipientProviders: RECIPIENTS,
278+
// to: "$SPRING_SECURITY_TEAM_EMAILS"
279+
// )
203280
}
204281
}
205282
}

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ version=5.4.0.BUILD-SNAPSHOT
55
kotlinVersion=1.3.70
66
org.gradle.jvmargs=-Xmx3g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError
77
org.gradle.parallel=true
8+
org.gradle.caching=true

settings.gradle

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
pluginManagement {
2+
repositories {
3+
gradlePluginPortal()
4+
maven { url 'https://repo.spring.io/plugins-release' }
5+
}
6+
}
7+
8+
plugins {
9+
id "com.gradle.enterprise" version "3.1.1"
10+
id "io.spring.gradle-enterprise-conventions" version "0.0.2"
11+
}
12+
113
rootProject.name = 'spring-security'
214

315
FileTree buildFiles = fileTree(rootDir) {

0 commit comments

Comments
 (0)