mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-02-24 07:37:50 +00:00
For the release disable OSSRH Deploy since we will release only to Artifactory for the milestone. We cannot deploy to OSSRH because we have RC dependencies that are not in Maven Central.
104 lines
2.9 KiB
Groovy
104 lines
2.9 KiB
Groovy
def projectProperties = [
|
|
[$class: 'BuildDiscarderProperty',
|
|
strategy: [$class: 'LogRotator', numToKeepStr: '5']],
|
|
pipelineTriggers([cron('@daily')])
|
|
]
|
|
properties(projectProperties)
|
|
|
|
def SUCCESS = hudson.model.Result.SUCCESS.toString()
|
|
currentBuild.result = SUCCESS
|
|
|
|
try {
|
|
parallel check: {
|
|
stage('Check') {
|
|
node {
|
|
checkout scm
|
|
try {
|
|
sh "./gradlew clean check --refresh-dependencies --no-daemon"
|
|
} catch(Exception e) {
|
|
currentBuild.result = 'FAILED: check'
|
|
throw e
|
|
} finally {
|
|
junit '**/build/*-results/*.xml'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
sonar: {
|
|
stage('Sonar') {
|
|
node {
|
|
checkout scm
|
|
withCredentials([string(credentialsId: 'spring-sonar.login', variable: 'SONAR_LOGIN')]) {
|
|
try {
|
|
sh "./gradlew clean sonarqube -PexcludeProjects='**/samples/**' -Dsonar.host.url=$SPRING_SONAR_HOST_URL -Dsonar.login=$SONAR_LOGIN --refresh-dependencies --no-daemon"
|
|
} catch(Exception e) {
|
|
currentBuild.result = 'FAILED: sonar'
|
|
throw e
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
springio: {
|
|
stage('Spring IO') {
|
|
node {
|
|
checkout scm
|
|
try {
|
|
sh "./gradlew clean springIoCheck -PplatformVersion=Cairo-BUILD-SNAPSHOT -PexcludeProjects='**/samples/**' --refresh-dependencies --no-daemon --stacktrace"
|
|
} catch(Exception e) {
|
|
currentBuild.result = 'FAILED: springio'
|
|
throw e
|
|
} finally {
|
|
junit '**/build/spring-io*-results/*.xml'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(currentBuild.result == 'SUCCESS') {
|
|
parallel docs: {
|
|
stage('Deploy Docs') {
|
|
node {
|
|
checkout scm
|
|
withCredentials([file(credentialsId: 'docs.spring.io-jenkins_private_ssh_key', variable: 'DEPLOY_SSH_KEY')]) {
|
|
sh "./gradlew deployDocs -PdeployDocsSshKeyPath=$DEPLOY_SSH_KEY -PdeployDocsSshUsername=$SPRING_DOCS_USERNAME --refresh-dependencies --no-daemon --stacktrace"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
schema: {
|
|
stage('Deploy Schema') {
|
|
node {
|
|
checkout scm
|
|
withCredentials([file(credentialsId: 'docs.spring.io-jenkins_private_ssh_key', variable: 'DEPLOY_SSH_KEY')]) {
|
|
sh "./gradlew deploySchema -PdeployDocsSshKeyPath=$DEPLOY_SSH_KEY -PdeployDocsSshUsername=$SPRING_DOCS_USERNAME --refresh-dependencies --no-daemon --stacktrace"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} finally {
|
|
def buildStatus = currentBuild.result
|
|
def buildNotSuccess = !SUCCESS.equals(buildStatus)
|
|
def lastBuildNotSuccess = !SUCCESS.equals(currentBuild.previousBuild?.result)
|
|
|
|
if(buildNotSuccess || lastBuildNotSuccess) {
|
|
|
|
stage('Notifiy') {
|
|
node {
|
|
final def RECIPIENTS = [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']]
|
|
|
|
def subject = "${buildStatus}: Build ${env.JOB_NAME} ${env.BUILD_NUMBER} status is now ${buildStatus}"
|
|
def details = """The build status changed to ${buildStatus}. For details see ${env.BUILD_URL}"""
|
|
|
|
emailext (
|
|
subject: subject,
|
|
body: details,
|
|
recipientProviders: RECIPIENTS,
|
|
to: "$SPRING_SECURITY_TEAM_EMAILS"
|
|
)
|
|
}
|
|
}
|
|
}
|
|
}
|