Re-introduce separate release-train version.

This commit is contained in:
Corneil du Plessis
2023-06-19 15:50:28 +02:00
parent 706c658d37
commit 7a10e18a98
8 changed files with 99 additions and 40 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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

View File

@@ -3,9 +3,8 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>stream-applications-release-train</artifactId>
<version>4.0.0-SNAPSHOT</version>
<version>2022.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<parent>
<groupId>org.springframework.cloud.stream.app</groupId>
<artifactId>stream-applications-core</artifactId>

View File

@@ -4,7 +4,8 @@
<parent>
<artifactId>stream-applications-release-train</artifactId>
<groupId>org.springframework.cloud.stream.app</groupId>
<version>4.0.0-SNAPSHOT</version>
<version>2022.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@@ -8,7 +8,8 @@
<parent>
<groupId>org.springframework.cloud.stream.app</groupId>
<artifactId>stream-applications-release-train</artifactId>
<version>4.0.0-SNAPSHOT</version>
<version>2022.0.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<properties>

View File

@@ -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
-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

8
versions.json Normal file
View File

@@ -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"
}
}