diff --git a/RELEASE.md b/RELEASE.md index f8646a9..28b99a3 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -37,3 +37,5 @@ Examples: `./release.sh 2.22.0 publish` `./release.sh 2.22.1 buildandpublish` + +`./release.sh 2.24-SNAPSHOT buildandpublish` diff --git a/build/release.sh b/build/release.sh index 6d9814c..c36e794 100755 --- a/build/release.sh +++ b/build/release.sh @@ -5,7 +5,7 @@ set -e function usage() { echo "$0 [options] " - echo " version : The released version to build an docker image for (eg: 2.1.4)" + echo " version : The released version to build an docker image for (eg: 2.23.1, 2.24-SNAPSHOT)" echo " mode : The mode. Choose one of 'build', 'publish' or 'buildandpublish'" } @@ -15,18 +15,56 @@ if [ -z $1 ] || [ -z $2 ] || [[ $2 != "build" && $2 != "publish" && $2 != "build fi VERSION=$1 -TAG=geoserver-docker.osgeo.org/geoserver:$VERSION +MAIN="2.24" +if [[ "${VERSION:0:4}" == "$MAIN" ]]; then + # main branch snapshot release + BRANCH=main + TAG=geoserver-docker.osgeo.org/geoserver:$MAIN.x +else + if [[ "$VERSION" == *"-SNAPSHOT"* ]]; then + # stable or maintenance branch snapshot release + BRANCH="${VERSION:0:4}.x" + TAG=geoserver-docker.osgeo.org/geoserver:$BRANCH + else + BRANCH="${VERSION:0:4}.x" + TAG=geoserver-docker.osgeo.org/geoserver:$VERSION + fi +fi + +echo "Release from branch $BRANCH GeoServer $VERSION as $TAG" # Go up one level to the Dockerfile cd ".." -if [ $2 != "publish" ]; then +if [ $2 == *"build"* ]; then echo "Building GeoServer Docker Image..." - echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ." - docker build --build-arg GS_VERSION=$VERSION -t $TAG . + if [[ "$VERSION" == *"-SNAPSHOT"* ]]; then + echo " nightly build from https://build.geoserver.org/geoserver/$BRANCH" + echo + if [[ "$BRANCH" == "main" ]]; then + echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ." + docker build \ + --build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/main/geoserver-main-latest-war.zip \ + --build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/main/ext-latest/ \ + --build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/main/community-latest/ \ + --build-arg GS_VERSION=$VERSION \ + -t $TAG . + else + echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ." + docker build \ + --build-arg WAR_ZIP_URL=https://build.geoserver.org/geoserver/$BRANCH/geoserver-$BRANCH-latest-war.zip \ + --build-arg STABLE_PLUGIN_URL=https://build.geoserver.org/geoserver/$BRANCH/ext-latest/ \ + --build-arg COMMUNITY_PLUGIN_URL=https://build.geoserver.org/geoserver/$BRANCH/community-latest/ \ + --build-arg GS_VERSION=$VERSION \ + -t $TAG . + fi + else + echo "docker build --build-arg GS_VERSION=$VERSION -t $TAG ." + docker build --build-arg GS_VERSION=$VERSION -t $TAG . + fi fi -if [ $2 != "build" ]; then +if [ $2 == *"publish"* ]; then echo "Publishing GeoServer Docker Image..." echo $DOCKERPASSWORD | docker login -u $DOCKERUSER --password-stdin geoserver-docker.osgeo.org echo "docker push $TAG"