123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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 artifactory: {
- stage('Artifactory Deploy') {
- node {
- checkout scm
- withCredentials([usernamePassword(credentialsId: '02bd1690-b54f-4c9f-819d-a77cb7a9822c', usernameVariable: 'ARTIFACTORY_USERNAME', passwordVariable: 'ARTIFACTORY_PASSWORD')]) {
- sh "./gradlew artifactoryPublish -PartifactoryUsername=$ARTIFACTORY_USERNAME -PartifactoryPassword=$ARTIFACTORY_PASSWORD --no-daemon --stacktrace"
- }
- }
- }
- },
- 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"
- )
- }
- }
- }
- }
|