OpenID-Connect-Java-Spring-.../Jenkinsfile

128 lines
3.3 KiB
Plaintext
Raw Normal View History

2018-05-30 11:41:53 +00:00
pipeline {
agent any
2018-05-30 11:41:53 +00:00
tools {
2020-06-05 09:39:48 +00:00
maven 'Maven 3.6.3'
2020-10-02 07:24:42 +00:00
jdk 'Corretto 8.265'
2018-05-30 11:41:53 +00:00
}
environment {
VERSION = ''
NEW_VERSION = ''
}
parameters {
booleanParam(name: 'RELEASE', defaultValue: false, description: 'Release a new version of the open id connect component')
}
2018-05-30 11:41:53 +00:00
options {
// Only keep 10 builds in total
buildDiscarder(logRotator(numToKeepStr:'10', daysToKeepStr:'2'))
// Display timestamps
timestamps()
// Prevent concurrent builds
disableConcurrentBuilds()
2018-05-30 11:41:53 +00:00
}
stages {
stage ('Discover Version Number') {
steps {
script {
def pom = readMavenPom file: 'pom.xml'
def currentVersion = pom.getVersion()
VERSION = currentVersion.substring(0, currentVersion.indexOf('-SNAPSHOT'))
def parts = VERSION.tokenize('-')
def currentGreshamVersion = parts[1].toInteger()
parts.remove(1)
NEW_VERSION = parts.join('-') + '-' + (currentGreshamVersion + 1)
}
}
}
stage ('1.3.3 Release Build') {
when {
expression {
return BRANCH_NAME == "1.3.x" && params.RELEASE
}
}
steps {
sh "mvn versions:set -B -DnewVersion=$VERSION"
sh "mvn -N -B versions:update-child-modules"
script {
sh "git commit --all --message 'Creating Release $VERSION'"
sh "git tag --annotate v$VERSION --message 'Creating Release $VERSION'"
sh "git push origin HEAD:${BRANCH_NAME} --tags"
}
timeout(time: 10, unit: 'MINUTES') {
2020-06-10 12:39:35 +00:00
withMaven(options: [junitPublisher(disabled: true)]) {
sh "mvn -B -V -U -T4 clean deploy -DaltReleaseDeploymentRepository=releases::default::https://nexus.greshamtech.com/repository/thirdparty-maven-releases/"
}
}
}
post {
success {
junit '**/target/surefire-reports/**/*.xml'
}
}
}
stage ('1.3.3 Snapshot Build') {
when {
expression {
return BRANCH_NAME == "1.3.x" && !params.RELEASE
}
}
steps {
timeout(time: 10, unit: 'MINUTES') {
2020-06-10 12:39:35 +00:00
withMaven(options: [junitPublisher(disabled: true)]) {
sh "mvn -B -V -U -T4 clean deploy -DaltSnapshotDeploymentRepository=snapshots::default::https://nexus.greshamtech.com/repository/thirdparty-maven-snapshots/ -DaltReleaseDeploymentRepository=releases::default::https://nexus.greshamtech.com/repository/thirdparty-maven-releases/"
}
}
}
post {
success {
junit '**/target/surefire-reports/**/*.xml'
}
}
}
stage ('Feature Branch Build') {
when {
not {
branch "1.3.x"
}
}
2018-05-30 11:41:53 +00:00
steps {
2018-05-30 11:51:38 +00:00
timeout(time: 10, unit: 'MINUTES') {
withMaven(options: [junitPublisher(disabled: true)]) {
sh "mvn versions:set -B -DnewVersion=${env.BRANCH_NAME}.GRESHAM-SNAPSHOT"
sh "mvn -N -B versions:update-child-modules"
sh "mvn -B -V -U -T4 clean deploy -DaltSnapshotDeploymentRepository=snapshots::default::https://nexus.greshamtech.com/repository/thirdparty-maven-snapshots/"
}
}
2018-05-30 11:41:53 +00:00
}
post {
success {
junit '**/target/surefire-reports/**/*.xml'
}
2018-05-30 11:41:53 +00:00
}
}
stage ('Bump Development Version') {
when {
expression {
return BRANCH_NAME == '1.3.x' && params.RELEASE
}
}
steps {
script {
sh "mvn versions:set -DnewVersion=${NEW_VERSION}-SNAPSHOT --batch-mode"
sh "git commit --all --message 'New Development Version $NEW_VERSION-SNAPSHOT'"
sh "git push origin HEAD:${BRANCH_NAME}"
}
}
}
2018-05-30 11:41:53 +00:00
}
post {
always {
deleteDir()
}
}
2018-05-30 11:41:53 +00:00
}