From 18c2d28adb771a2aa4917e74d493ec00a08b6111 Mon Sep 17 00:00:00 2001 From: Greg Turnquist Date: Tue, 30 Jul 2019 12:30:41 -0500 Subject: [PATCH] Remove promotion features. Spring HATEOAS Examples doesn't need to be deployed to artifactory let alone Maven Central. So all the pipeline steps, maven profiles, and CI scripts involving that are removed. This should lighten things up so we can focus on making the examples as powerful as possible along with the message. --- Jenkinsfile | 119 +--------------------------------- RELEASE.adoc | 19 ------ ci/README.adoc | 5 -- ci/build.sh | 5 -- ci/create-release.sh | 21 ------ ci/promote-to-bintray.sh | 42 ------------ ci/sync-to-maven-central.sh | 23 ------- ci/test.sh | 2 +- pom.xml | 125 +----------------------------------- 9 files changed, 3 insertions(+), 358 deletions(-) delete mode 100644 RELEASE.adoc delete mode 100644 ci/README.adoc delete mode 100755 ci/build.sh delete mode 100755 ci/create-release.sh delete mode 100755 ci/promote-to-bintray.sh delete mode 100755 ci/sync-to-maven-central.sh diff --git a/Jenkinsfile b/Jenkinsfile index ffc5f5e..b504b2a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -7,6 +7,7 @@ pipeline { options { disableConcurrentBuilds() + buildDiscarder(logRotator(numToKeepStr: '14')) } stages { @@ -48,124 +49,6 @@ pipeline { } } } - - stage('Deploy to Artifactory') { - agent { - docker { - image 'springci/spring-hateoas-openjdk8-with-graphviz-and-jq:latest' - args '-v $HOME/.m2:/root/.m2' - } - } - - environment { - ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c') - } - - steps { - script { - // Warm up this plugin quietly before using it. - sh "./mvnw -q org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version" - - PROJECT_VERSION = sh( - script: "./mvnw org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version -o | grep -v INFO", - returnStdout: true - ).trim() - - RELEASE_TYPE = 'milestone' // .RC? or .M? - - if (PROJECT_VERSION.endsWith('BUILD-SNAPSHOT')) { - RELEASE_TYPE = 'snapshot' - } else if (PROJECT_VERSION.endsWith('RELEASE')) { - RELEASE_TYPE = 'release' - } - - OUTPUT = sh( - script: "PROFILE=ci,${RELEASE_TYPE} ci/build.sh", - returnStdout: true - ).trim() - - echo "$OUTPUT" - - build_info_path = OUTPUT.split('\n') - .find { it.contains('Artifactory Build Info Recorder') } - .split('Saving Build Info to ')[1] - .trim()[1..-2] - - dir(build_info_path + '/..') { - stash name: 'build_info', includes: "*.json" - } - } - } - } - stage('Promote to Bintray') { - when { - branch 'release' - } - agent { - docker { - image 'springci/spring-hateoas-openjdk8-with-graphviz-and-jq:latest' - args '-v $HOME/.m2:/root/.m2' - } - } - - environment { - ARTIFACTORY = credentials('02bd1690-b54f-4c9f-819d-a77cb7a9822c') - } - - steps { - script { - // Warm up this plugin quietly before using it. - sh "./mvnw -q org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version" - - PROJECT_VERSION = sh( - script: "./mvnw org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version -o | grep -v INFO", - returnStdout: true - ).trim() - - if (PROJECT_VERSION.endsWith('RELEASE')) { - unstash name: 'build_info' - sh "ci/promote-to-bintray.sh" - } else { - echo "${PROJECT_VERSION} is not a candidate for promotion to Bintray." - } - } - } - } - stage('Sync to Maven Central') { - when { - branch 'release' - } - agent { - docker { - image 'springci/spring-hateoas-openjdk8-with-graphviz-and-jq:latest' - args '-v $HOME/.m2:/root/.m2' - } - } - - environment { - BINTRAY = credentials('Bintray-spring-operator') - SONATYPE = credentials('oss-token') - } - - steps { - script { - // Warm up this plugin quietly before using it. - sh "./mvnw -q org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version" - - PROJECT_VERSION = sh( - script: "./mvnw org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version -o | grep -v INFO", - returnStdout: true - ).trim() - - if (PROJECT_VERSION.endsWith('RELEASE')) { - unstash name: 'build_info' - sh "ci/sync-to-maven-central.sh" - } else { - echo "${PROJECT_VERSION} is not a candidate for syncing to Maven Central." - } - } - } - } } post { diff --git a/RELEASE.adoc b/RELEASE.adoc deleted file mode 100644 index db76aca..0000000 --- a/RELEASE.adoc +++ /dev/null @@ -1,19 +0,0 @@ -=== Making a release - -1. Create a new release (on the main branch). -+ ----- -% ci/create-release.sh ----- -+ -2. With the release tagged, push the tagged version to the release branch. -+ ----- -% git checkout -b release -% git reset --hard -% git push -f origin release ----- - -NOTE: You can chain the previous set of commands together using `&&`. - -The pipeline will build and release the "release" branch. It will also build a new a new snapshot and stage it on artifactory. diff --git a/ci/README.adoc b/ci/README.adoc deleted file mode 100644 index bd69997..0000000 --- a/ci/README.adoc +++ /dev/null @@ -1,5 +0,0 @@ -== Concourse CI - -Spring HATEOAS Examples is built using Concourse as it's CI tool of choice. - -The pipeline is defined on https://github.com/spring-projects/spring-hateoas[Spring HATEOAS], it's parent project. \ No newline at end of file diff --git a/ci/build.sh b/ci/build.sh deleted file mode 100755 index 6a202bb..0000000 --- a/ci/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -./mvnw -P${PROFILE} -Dmaven.test.skip=true clean deploy -B diff --git a/ci/create-release.sh b/ci/create-release.sh deleted file mode 100755 index b6d899f..0000000 --- a/ci/create-release.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -RELEASE=$1 -SNAPSHOT=$2 - -# Bump up the version in pom.xml to the desired version and commit the change -./mvnw versions:set -DnewVersion=$RELEASE -DgenerateBackupPoms=false -git add . -git commit --message "Releasing Spring HATEOAS Examples v$RELEASE" - -# Tag the release -git tag -s v$RELEASE -m "v$RELEASE" - -# Bump up the version in pom.xml to the next snapshot -./mvnw versions:set -DnewVersion=$SNAPSHOT -DgenerateBackupPoms=false -git add . -git commit --message "Continue development on v$SNAPSHOT" - - diff --git a/ci/promote-to-bintray.sh b/ci/promote-to-bintray.sh deleted file mode 100755 index a00bb8d..0000000 --- a/ci/promote-to-bintray.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -set -e -u - -buildName=`jq -r '.name' build-info.json` -buildNumber=`jq -r '.number' build-info.json` -groupId=`jq -r '.modules[0].id' build-info.json | sed 's/\(.*\):.*:.*/\1/'` -version=`jq -r '.modules[0].id' build-info.json | sed 's/.*:.*:\(.*\)/\1/'` - -echo "Promoting ${buildName}/${buildNumber}/${groupId}/${version} to libs-release-local" - -curl \ - -s \ - --connect-timeout 240 \ - --max-time 2700 \ - -u ${ARTIFACTORY_USR}:${ARTIFACTORY_PSW} \ - -H 'Content-type:application/json' \ - -d '{"sourceRepos": ["libs-release-local"], "targetRepo" : "spring-distributions", "async":"true"}' \ - -f \ - -X \ - POST "https://repo.spring.io/api/build/distribute/${buildName}/${buildNumber}" > /dev/null || { echo "Failed to distribute" >&2; exit 1; } - -echo "Waiting for artifacts to be published" - -ARTIFACTS_PUBLISHED=false -WAIT_TIME=10 -COUNTER=0 - -while [ $ARTIFACTS_PUBLISHED == "false" ] && [ $COUNTER -lt 120 ]; do - - result=$( curl -s https://api.bintray.com/packages/spring/jars/"${groupId}" ) - versions=$( echo "$result" | jq -r '.versions' ) - exists=$( echo "$versions" | grep "$version" -o || true ) - - if [ "$exists" = "$version" ]; then - ARTIFACTS_PUBLISHED=true - fi - - COUNTER=$(( COUNTER + 1 )) - sleep $WAIT_TIME - -done diff --git a/ci/sync-to-maven-central.sh b/ci/sync-to-maven-central.sh deleted file mode 100755 index 7150ca7..0000000 --- a/ci/sync-to-maven-central.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash - -set -e -u - -buildName=`jq -r '.name' build-info.json` -buildNumber=`jq -r '.number' build-info.json` -groupId=`jq -r '.modules[0].id' build-info.json | sed 's/\(.*\):.*:.*/\1/'` -version=`jq -r '.modules[0].id' build-info.json | sed 's/.*:.*:\(.*\)/\1/'` - -echo "Syncing ${buildName}/${buildNumber}/${groupId}/${version} to Maven Central..." - -curl \ - -s \ - --connect-timeout 240 \ - --max-time 2700 \ - -u ${BINTRAY_USR}:${BINTRAY_PSW} \ - -H 'Content-Type: application/json' \ - -d "{ \"username\": \"${SONATYPE_USR}\", \"password\": \"${SONATYPE_PSW}\"}" \ - -f \ - -X \ - POST "https://api.bintray.com/maven_central_sync/spring/jars/${groupId}/versions/${version}" > /dev/null || { echo "Failed to sync" >&2; exit 1; } - -echo "Sync complete" diff --git a/ci/test.sh b/ci/test.sh index f6bb0bf..9effba2 100755 --- a/ci/test.sh +++ b/ci/test.sh @@ -2,4 +2,4 @@ set -euo pipefail -./mvnw -P${PROFILE} clean dependency:list test -Dsort -B +MAVEN_OPTS="-Duser.name=jenkins -Duser.home=/tmp/jenkins-home" ./mvnw -P${PROFILE} clean dependency:list test -Dsort -B diff --git a/pom.xml b/pom.xml index 0687396..3f2bcbc 100644 --- a/pom.xml +++ b/pom.xml @@ -90,130 +90,7 @@ - - - snapshot - - - - - org.jfrog.buildinfo - artifactory-maven-plugin - 2.6.1 - false - - - build-info - - publish - - - - {{BUILD_URL}} - - - spring-hateoas - spring-hateoas - false - *:*:*:*@zip - - - https://repo.spring.io - {{ARTIFACTORY_USR}} - {{ARTIFACTORY_PSW}} - libs-snapshot-local - libs-snapshot-local - - - - - - - - - - - milestone - - - - - org.jfrog.buildinfo - artifactory-maven-plugin - 2.6.1 - false - - - build-info - - publish - - - - {{BUILD_URL}} - - - spring-hateoas - spring-hateoas - false - *:*:*:*@zip - - - https://repo.spring.io - {{ARTIFACTORY_USR}} - {{ARTIFACTORY_PSW}} - libs-milestone-local - libs-milestone-local - - - - - - - - - - - release - - - - - org.jfrog.buildinfo - artifactory-maven-plugin - 2.6.1 - false - - - build-info - - publish - - - - {{BUILD_URL}} - - - spring-hateoas - spring-hateoas - false - *:*:*:*@zip - - - https://repo.spring.io - {{ARTIFACTORY_USR}} - {{ARTIFACTORY_PSW}} - libs-release-local - libs-release-local - - - - - - - - - +