diff --git a/CHANGELOG.md b/CHANGELOG.md index e2c0ffb3b..f8c651118 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Unreleased: - Added a password encoder to the client entity service - Fixes a bug by specifying the name of the scope columnn - Removed functionality that passed the client secret down to the UI +- Updated JDK to Corretto 1.8.252 *1.3.2: - Added changelog diff --git a/Jenkinsfile b/Jenkinsfile index c52485f93..571bf3642 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,11 +1,15 @@ -// -// CTC Auth Jenkins Pipeline -// pipeline { - agent any + agent any tools { - maven 'Maven 3.3.9' - jdk 'Java 8' + maven 'Maven 3.6.3' + jdk 'Corretto 8.252' + } + 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 @@ -15,53 +19,109 @@ pipeline { timestamps() // Prevent concurrent builds - disableConcurrentBuilds(); + disableConcurrentBuilds() } stages { - stage ('1.3.3 Build') { - when { - branch "1.3.x" - } - steps { - sh "mvn versions:set -DnewVersion=1.3.3.GRESHAM-19" - sh "mvn -N versions:update-child-modules" - - timeout(time: 10, unit: 'MINUTES') { - sh "mvn -B -V -U -T4 clean deploy -DaltReleaseDeploymentRepository=releases::default::https://nexus.greshamtech.com/content/repositories/thirdparty/" - } - } - post { - always{ - archiveArtifacts caseSensitive: false, onlyIfSuccessful: true, allowEmptyArchive: true, artifacts: 'openid-connect-server-webapp/target/*.war' - } - } - } - stage ('Build') { - when { - not { - branch "1.3.x" - } - } + stage ('Discover Version Number') { steps { - sh "mvn versions:set -DnewVersion=${env.BRANCH_NAME}.GRESHAM-SNAPSHOT" - sh "mvn -N versions:update-child-modules" + 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') { - sh "mvn -B -V -U -T4 clean deploy -DaltSnapshotDeploymentRepository=snapshots::default::https://nexus.greshamtech.com/content/repositories/third-party-snapshots/" - } + 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 { - always{ - archiveArtifacts caseSensitive: false, onlyIfSuccessful: true, allowEmptyArchive: true, artifacts: 'openid-connect-server-webapp/target/*.war' - } - success { - junit '**/target/surefire-reports/**/*.xml' - } + 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/" + } + } + } + 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() - } - } + always { + deleteDir() + } + } } diff --git a/README.md b/README.md index 2c513b0a0..153b12bed 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,10 @@ The authors and key contributors of the project include: Copyright ©2017, [MIT Internet Trust Consortium](http://www.trust.mit.edu/). Licensed under the Apache 2.0 license, for details see `LICENSE.txt`. -## Note for releasing +## Release Process -Releases are made off of branch 1.3.x - the version released used to depend on the Jenkins build number but this is ineffective as the Jenkins history can vanish leaving you back at build number 1. Therefore, in the Jenkinsfile, the version to be released needs altering on line 26 and incrementing by 1. +Here at Gresham, we use this component for a base for the auth server, our developing branch is 1.3.x and any feature branches should be made off of that branch. + +In order to release a new version of the open-id-connect component, run the `Build with Parameters` on Jenkins ticking the release checkbox as part of the build. + +This will release the next release version (the current version less the -SNAPSHOT), run a build with the tests and then bump the 1.3.x branch to the next snapshot version of the repository diff --git a/openid-connect-client/pom.xml b/openid-connect-client/pom.xml index d01d9a40e..22d57a64c 100644 --- a/openid-connect-client/pom.xml +++ b/openid-connect-client/pom.xml @@ -22,7 +22,7 @@ openid-connect-parent org.mitre - 1.3.3-SNAPSHOT + 1.3.3.GRESHAM-20-SNAPSHOT .. openid-connect-client diff --git a/openid-connect-common/pom.xml b/openid-connect-common/pom.xml index 54cc0ef55..f298c1ec0 100644 --- a/openid-connect-common/pom.xml +++ b/openid-connect-common/pom.xml @@ -22,7 +22,7 @@ openid-connect-parent org.mitre - 1.3.3-SNAPSHOT + 1.3.3.GRESHAM-20-SNAPSHOT .. openid-connect-common diff --git a/openid-connect-server-webapp/pom.xml b/openid-connect-server-webapp/pom.xml index 6bc66e4f9..28576fb36 100644 --- a/openid-connect-server-webapp/pom.xml +++ b/openid-connect-server-webapp/pom.xml @@ -21,7 +21,7 @@ org.mitre openid-connect-parent - 1.3.3-SNAPSHOT + 1.3.3.GRESHAM-20-SNAPSHOT openid-connect-server-webapp war diff --git a/openid-connect-server/pom.xml b/openid-connect-server/pom.xml index 1462be27e..d42043494 100644 --- a/openid-connect-server/pom.xml +++ b/openid-connect-server/pom.xml @@ -23,7 +23,7 @@ org.mitre openid-connect-parent - 1.3.3-SNAPSHOT + 1.3.3.GRESHAM-20-SNAPSHOT .. diff --git a/pom.xml b/pom.xml index beb6be2e8..548231330 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.mitre openid-connect-parent - 1.3.3-SNAPSHOT + 1.3.3.GRESHAM-20-SNAPSHOT MITREid Connect pom diff --git a/uma-server-webapp/pom.xml b/uma-server-webapp/pom.xml index 8ce3302da..cdb50603c 100644 --- a/uma-server-webapp/pom.xml +++ b/uma-server-webapp/pom.xml @@ -19,7 +19,7 @@ org.mitre openid-connect-parent - 1.3.3-SNAPSHOT + 1.3.3.GRESHAM-20-SNAPSHOT .. uma-server-webapp diff --git a/uma-server/pom.xml b/uma-server/pom.xml index 219161528..d7cbae630 100644 --- a/uma-server/pom.xml +++ b/uma-server/pom.xml @@ -19,7 +19,7 @@ org.mitre openid-connect-parent - 1.3.3-SNAPSHOT + 1.3.3.GRESHAM-20-SNAPSHOT .. uma-server