From 7a10e18a989f057785b651d29a4f465c4d7208ca Mon Sep 17 00:00:00 2001 From: Corneil du Plessis Date: Mon, 19 Jun 2023 15:50:28 +0200 Subject: [PATCH] Re-introduce separate release-train version. --- .github/workflows/common.yml | 33 ++++++++------- get-build-version-params.sh | 25 +++++++++--- next-dev-version.sh | 24 +++++++++-- stream-applications-release-train/pom.xml | 3 +- .../stream-applications-descriptor/pom.xml | 3 +- .../stream-applications-docs/pom.xml | 3 +- update-project-version.sh | 40 +++++++++++++------ versions.json | 8 ++++ 8 files changed, 99 insertions(+), 40 deletions(-) create mode 100644 versions.json diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 3a4d6823..05fd39de 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -137,9 +137,11 @@ jobs: processors: ${{ env.PROCESSORS }} matrix: ${{ env.matrix }} build_version: ${{ env.BUILD_VERSION }} + release_train_version: ${{ env.RELEASE_TRAIN_VERSION }} build_version_type: ${{ env.BUILD_VERSION_TYPE }} is_version_change: ${{ env.IS_VERSION_CHANGE }} next_dev_version: ${{ env.NEXT_DEV_VERSION }} + release_train_next_dev_version: ${{ env.RELEASE_TRAIN_NEXT_DEV_VERSION }} jdk_build: ${{ env.JDK_BUILD }} jre_version: ${{ env.JRE_DEFAULT }} core: @@ -195,8 +197,8 @@ jobs: run: | ROOT_DIR=$(realpath $PWD) pushd stream-applications >/dev/null - echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }}" - $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" + echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }} / ${{ needs.parameters.outputs.release_train_build_version }}" + $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" "${{ needs.parameters.outputs.release_train_build_version }}" echo "::notice ::checking updated versions" set +e MESSAGE=$($ROOT_DIR/check-versions-for-release.sh ${{ needs.parameters.outputs.build_version_type }}) @@ -321,8 +323,8 @@ jobs: run: | ROOT_DIR=$(realpath $PWD) pushd stream-applications >/dev/null - echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }}" - $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" + echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }} / ${{ needs.parameters.outputs.release_train_build_version }}" + $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" "${{ needs.parameters.outputs.release_train_build_version }}" echo "::notice ::checking updated versions" set +e MESSAGE=$($ROOT_DIR/check-versions-for-release.sh ${{ needs.parameters.outputs.build_version_type }}) @@ -421,8 +423,8 @@ jobs: run: | ROOT_DIR=$(realpath $PWD) pushd stream-applications >/dev/null - echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }}" - $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" + echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }} / ${{ needs.parameters.outputs.release_train_build_version }}" + $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" "${{ needs.parameters.outputs.release_train_build_version }}" echo "::notice ::checking updated versions" set +e MESSAGE=$($ROOT_DIR/check-versions-for-release.sh ${{ needs.parameters.outputs.build_version_type }}) @@ -523,8 +525,8 @@ jobs: run: | ROOT_DIR=$(realpath $PWD) pushd stream-applications >/dev/null - echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }}" - $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" + echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }} / ${{ needs.parameters.outputs.release_train_build_version }}" + $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" "${{ needs.parameters.outputs.release_train_build_version }}" echo "::notice ::checking updated versions" set +e MESSAGE=$($ROOT_DIR/check-versions-for-release.sh ${{ needs.parameters.outputs.build_version_type }}) @@ -620,8 +622,8 @@ jobs: run: | ROOT_DIR=$(realpath $PWD) pushd stream-applications >/dev/null - echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }}" - $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" + echo "::notice ::updating versions to ${{ needs.parameters.outputs.build_version }} / ${{ needs.parameters.outputs.release_train_build_version }}" + $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.build_version }}" "${{ needs.parameters.outputs.release_train_build_version }}" echo "::notice ::checking updated versions" set +e MESSAGE=$($ROOT_DIR/check-versions-for-release.sh ${{ needs.parameters.outputs.build_version_type }}) @@ -666,8 +668,9 @@ jobs: pushd stream-applications > /dev/null git config user.name "GitHub Actions Bot" git config user.email "<>" - git commit -a -m "Release ${{ needs.parameters.outputs.build_version }}" + git commit -a -m "Release ${{ needs.parameters.outputs.build_version }} / ${{ needs.parameters.outputs.release_train_build_version }}" git tag "v${{ needs.parameters.outputs.build_version }}" + git tag "v${{ needs.parameters.outputs.release_train_build_version }}" git push --tags -v origin popd > /dev/null # add jfrog download @@ -682,11 +685,11 @@ jobs: pushd stream-applications >/dev/null git config user.name "GitHub Actions Bot" git config user.email "<>" - echo "::notice ::updating next dev versions to ${{ needs.parameters.outputs.next_dev_version }}" - $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.next_dev_version }}" - echo "::notice ::setting released version to next dev version ${{ needs.parameters.outputs.next_dev_version }}" + echo "::notice ::updating next dev versions to ${{ needs.parameters.outputs.next_dev_version }} / ${{ needs.parameters.outputs.release_train_next_dev_version }}" + $ROOT_DIR/update-project-version.sh "${{ needs.parameters.outputs.next_dev_version }}" "${{ needs.parameters.outputs.release_train_next_dev_version }}" + echo "::notice ::setting released version to next dev version ${{ needs.parameters.outputs.next_dev_version }} / ${{ needs.parameters.outputs.release_train_next_dev_version }}" ./next-dev-version.sh - git commit -a -m "Next development version ${{ needs.parameters.outputs.next_dev_version }}" + git commit -a -m "Next development version ${{ needs.parameters.outputs.next_dev_version }} / ${{ needs.parameters.outputs.release_train_next_dev_version }}" git push -v origin popd > /dev/null rerun-jobs: diff --git a/get-build-version-params.sh b/get-build-version-params.sh index 8367d122..a000c7ed 100755 --- a/get-build-version-params.sh +++ b/get-build-version-params.sh @@ -7,7 +7,7 @@ if (( sourced == 0 )); then exit 1 fi # get the target release version and type -export BUILD_VERSION=$(cat ./version/RELEASE_VERSION) +BUILD_VERSION=$(jq -r '.release_version' ./versions.json) echo "BUILD_VERSION: $BUILD_VERSION" set +e IS_SNAPSHOT=$(echo $BUILD_VERSION | grep -E "^.*-SNAPSHOT$") @@ -28,17 +28,32 @@ fi echo "BUILD_VERSION_TYPE: $BUILD_VERSION_TYPE" # get the current version from pom.xml -export CUR_VERSION=$($SCDIR/mvn-get-version.sh) +CUR_VERSION=$($SCDIR/mvn-get-version.sh) echo "CUR_VERSION: $CUR_VERSION" # is build a version change? if [ "$CUR_VERSION" = "$BUILD_VERSION" ]; then - export IS_VERSION_CHANGE="false" + IS_VERSION_CHANGE="false" else - export IS_VERSION_CHANGE="true" + IS_VERSION_CHANGE="true" fi echo "IS_VERSION_CHANGE: $IS_VERSION_CHANGE" # get the next dev version -export NEXT_DEV_VERSION=$(cat ./version/NEXT_DEV_VERSION) +NEXT_DEV_VERSION=$(jq -r '.next_dev_version' ./versions.json) echo "NEXT_DEV_VERSION: $NEXT_DEV_VERSION" + +RELEASE_TRAIN_VERSION=$(jq -r '.release_train.release_version' ./versions.json) +echo "RELEASE_TRAIN_VERSION=$RELEASE_TRAIN_VERSION" +RELEASE_TRAIN_NEXT_DEV_VERSION=$(jq -r '.release_train.next_dev_version' ./versions.json) +echo "RELEASE_TRAIN_NEXT_DEV_VERSION=$RELEASE_TRAIN_NEXT_DEV_VERSION" + +export BUILD_VERSION +export BUILD_VERSION_TYPE +export IS_GA +export IS_MILESTONE +export IS_SNAPSHOT +export IS_VERSION_CHANGE +export CUR_VERSION +export RELEASE_TRAIN_VERSION +export RELEASE_TRAIN_NEXT_DEV_VERSION diff --git a/next-dev-version.sh b/next-dev-version.sh index 9f6cff9a..6d25ad81 100755 --- a/next-dev-version.sh +++ b/next-dev-version.sh @@ -3,7 +3,23 @@ SCDIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")") SCDIR=$(realpath $SCDIR) set +e - -echo "Updating RELEASE_VERSION: $(cat $SCDIR/version/RELEASE_VERSION) to NEXT_DEV_VERSION: $(cat $SCDIR/version/NEXT_DEV_VERSION)" -cat $SCDIR/version/NEXT_DEV_VERSION > $SCDIR/version/RELEASE_VERSION -echo "Updated RELEASE_VERSION: $(cat $SCDIR/version/RELEASE_VERSION)" +RELEASE_VERSION=$(jq -r '.release_version' ./versions.json) +NEXT_DEV_VERSION=$(jq -r '.next_dev_version' ./versions.json) +if [ "$RELEASE_VERSION" != "$NEXT_DEV_VERSION" ]; then + echo "Updating RELEASE_VERSION: $RELEASE_VERSION to NEXT_DEV_VERSION: $NEXT_DEV_VERSION" + cat ./versions.json | jq --arg ndv "$NEXT_DEV_VERSION" '.release_version = $ndv' | tee ./versions.json + RELEASE_VERSION=$(jq -r '.release_version' ./versions.json) + echo "Updated RELEASE_VERSION: $RELEASE_VERSION" +else + echo "No change in $RELEASE_VERSION -> $NEXT_DEV_VERSION" +fi +RELEASE_TRAIN_VERSION=$(jq -r '.release_train.release_version' ./versions.json) +RELEASE_TRAIN_NEXT_DEV_VERSION=$(jq -r '.release_train.next_dev_version' ./versions.json) +if [ "$RELEASE_TRAIN_VERSION" != "$RELEASE_TRAIN_NEXT_DEV_VERSION" ]; then + echo "Updating RELEASE_TRAIN_VERSION: $RELEASE_TRAIN_VERSION to RELEASE_TRAIN_NEXT_DEV_VERSION: $RELEASE_TRAIN_NEXT_DEV_VERSION" + cat ./versions.json | jq --arg ndv "$RELEASE_TRAIN_NEXT_DEV_VERSION" '.release_train.release_version = $ndv' | tee ./versions.json + RELEASE_TRAIN_VERSION=$(jq -r '.release_train.release_version' ./versions.json) + echo "Updated RELEASE_TRAIN_VERSION: $RELEASE_TRAIN_VERSION" +else + echo "No change in $RELEASE_TRAIN_VERSION -> $RELEASE_TRAIN_NEXT_DEV_VERSION" +fi diff --git a/stream-applications-release-train/pom.xml b/stream-applications-release-train/pom.xml index ba0e2c24..ca0f9557 100644 --- a/stream-applications-release-train/pom.xml +++ b/stream-applications-release-train/pom.xml @@ -3,9 +3,8 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 stream-applications-release-train - 4.0.0-SNAPSHOT + 2022.0.0-SNAPSHOT pom - org.springframework.cloud.stream.app stream-applications-core diff --git a/stream-applications-release-train/stream-applications-descriptor/pom.xml b/stream-applications-release-train/stream-applications-descriptor/pom.xml index 02626601..dd5c3f42 100644 --- a/stream-applications-release-train/stream-applications-descriptor/pom.xml +++ b/stream-applications-release-train/stream-applications-descriptor/pom.xml @@ -4,7 +4,8 @@ stream-applications-release-train org.springframework.cloud.stream.app - 4.0.0-SNAPSHOT + 2022.0.0-SNAPSHOT + ../pom.xml 4.0.0 diff --git a/stream-applications-release-train/stream-applications-docs/pom.xml b/stream-applications-release-train/stream-applications-docs/pom.xml index 27459251..7a35e026 100644 --- a/stream-applications-release-train/stream-applications-docs/pom.xml +++ b/stream-applications-release-train/stream-applications-docs/pom.xml @@ -8,7 +8,8 @@ org.springframework.cloud.stream.app stream-applications-release-train - 4.0.0-SNAPSHOT + 2022.0.0-SNAPSHOT + ../pom.xml diff --git a/update-project-version.sh b/update-project-version.sh index 1a8f2da8..fc693ad3 100755 --- a/update-project-version.sh +++ b/update-project-version.sh @@ -1,31 +1,47 @@ #!/usr/bin/env bash -if [ "$1" = "" ]; then - echo "VERSION required as first argument" +SCDIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")") +SCDIR=$(realpath $SCDIR) +if [ "$2" = "" ]; then + echo "VERSION and RELEASE_TRAIN_VERSION required as arguments" exit 1 fi VERSION=$1 -./mvnw versions:set \ +RELEASE_TRAIN_VERSION=$2 +$SCDIR/mvnw versions:set \ -DnewVersion="$VERSION" \ -s .settings.xml \ + --offline \ -DprocessAllModules=true \ -DgenerateBackupPoms=false \ -Dartifactory.publish.artifacts=false \ -B $VERBOSE -./mvnw versions:set-property -f stream-applications-release-train \ - -s .settings.xml \ - -DgenerateBackupPoms=false \ - -Dproperty=apps.version \ - -DnewVersion="$VERSION" \ - -B $VERBOSE -./mvnw versions:set-property -f applications/stream-applications-core \ +$SCDIR/mvnw versions:set-property -f applications/stream-applications-core \ -s .settings.xml \ + --offline \ -DgenerateBackupPoms=false \ -Dproperty=stream-apps-core.version \ -DnewVersion="$VERSION" \ -B $VERBOSE -./mvnw versions:set-property -f applications/stream-applications-core \ +$SCDIR/mvnw versions:set-property -f applications/stream-applications-core \ -s .settings.xml \ + --offline \ -DgenerateBackupPoms=false \ -Dproperty=java-functions.version \ -DnewVersion="$VERSION" \ - -B $VERBOSE \ No newline at end of file + -B $VERBOSE +$SCDIR/mvnw versions:set -f stream-applications-release-train \ + -DnewVersion="$RELEASE_TRAIN_VERSION" \ + --offline \ + -s .settings.xml \ + -DprocessFromLocalAggregationRoot=false + -DprocessParent=false \ + -DgenerateBackupPoms=false \ + -Dartifactory.publish.artifacts=false \ + -B $VERBOSE +$SCDIR/mvnw versions:set-property -f stream-applications-release-train \ + -s .settings.xml \ + --offline \ + -DgenerateBackupPoms=false \ + -Dproperty=apps.version \ + -DnewVersion="$VERSION" \ + -B $VERBOSE diff --git a/versions.json b/versions.json new file mode 100644 index 00000000..00207a2f --- /dev/null +++ b/versions.json @@ -0,0 +1,8 @@ +{ + "release_version": "4.0.0-SNAPSHOT", + "next_dev_version": "4.0.0-SNAPSHOT", + "release_train": { + "release_version": "2022.0.0-SNAPSHOT", + "next_dev_version": "2022.0.0-SNAPSHOT" + } +}