Last active
May 13, 2018 04:44
-
-
Save garystafford/841578888c5441d9e54601b26edc3a02 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env groovy | |
def ACCOUNT = "garystafford" | |
def PROJECT_NAME = "spring-postgresql-demo" | |
pipeline { | |
agent any | |
tools { | |
gradle 'gradle' | |
} | |
stages { | |
stage('Checkout GitHub') { | |
steps { | |
git changelog: true, poll: false, | |
branch: 'master', | |
url: "https://github.com/${ACCOUNT}/${PROJECT_NAME}" | |
} | |
} | |
stage('Build') { | |
steps { | |
sh 'gradle wrapper' | |
sh 'LOGGING_LEVEL_ROOT=INFO ./gradlew clean build -x test --info' | |
} | |
} | |
stage('Unit Test') { // unit test against in-memory h2 | |
steps { | |
withEnv(['SPRING_DATASOURCE_URL=jdbc:h2:mem:elections']) { | |
sh 'LOGGING_LEVEL_ROOT=INFO ./gradlew cleanTest test --info' | |
} | |
junit '**/build/test-results/test/*.xml' | |
} | |
} | |
stage('SonarQube Analysis') { | |
steps { | |
withSonarQubeEnv('sonarqube') { | |
sh "LOGGING_LEVEL_ROOT=INFO ./gradlew sonarqube -Dsonar.projectName=${PROJECT_NAME} --info" | |
} | |
} | |
} | |
stage('Build Debian Package') { | |
steps { | |
sh "LOGGING_LEVEL_ROOT=INFO ./gradlew packDeb --info" | |
} | |
} | |
stage('Upload Debian Package') { | |
steps { | |
withCredentials([ | |
string(credentialsId: 'GPG_KEY_ID', variable: 'GPG_KEY_ID'), | |
string(credentialsId: 'AWS_ACCESS_KEY_ID', variable: 'AWS_ACCESS_KEY_ID'), | |
string(credentialsId: 'AWS_SECRET_ACCESS_KEY', variable: 'AWS_SECRET_ACCESS_KEY')]) { | |
sh "sh ./scripts/upload-deb-package.sh ${GPG_KEY_ID}" | |
} | |
} | |
} | |
stage('Archive Debian Package') { | |
steps { | |
archiveArtifacts 'build/distributions/*.deb' | |
} | |
} | |
} | |
post { | |
success { | |
slackSend(color: '#79B12B', | |
message: "SUCCESS: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})") | |
} | |
failure { | |
slackSend(color: '#FF0000', | |
message: "FAILURE: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})") | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment