128 lines
3.3 KiB
Groovy
128 lines
3.3 KiB
Groovy
pipeline {
|
|
agent any
|
|
tools {
|
|
maven 'Maven 3.6.3'
|
|
jdk 'Corretto 8.265'
|
|
}
|
|
environment {
|
|
VERSION = ''
|
|
NEW_VERSION = ''
|
|
}
|
|
parameters {
|
|
booleanParam(name: 'RELEASE', defaultValue: false, description: 'Release a new version of the open id connect component')
|
|
}
|
|
options {
|
|
// Only keep 10 builds in total
|
|
buildDiscarder(logRotator(numToKeepStr:'10', daysToKeepStr:'2'))
|
|
|
|
// Display timestamps
|
|
timestamps()
|
|
|
|
// Prevent concurrent builds
|
|
disableConcurrentBuilds()
|
|
}
|
|
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') {
|
|
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') {
|
|
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"
|
|
}
|
|
}
|
|
steps {
|
|
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/"
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
success {
|
|
junit '**/target/surefire-reports/**/*.xml'
|
|
}
|
|
}
|
|
}
|
|
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}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
post {
|
|
always {
|
|
deleteDir()
|
|
}
|
|
}
|
|
}
|