#!/bin/bash source /home/anon/.jabba/jabba.sh # amazon-corretto jabba use 21.0.2 # Set variables IMAGE_NAME="nise-backend" IMAGE_REGISTRY="git.gengo.tech/gengotech" IMAGE_VERSION=$(grep -m2 "" pom.xml | tail -n1 | sed 's/[[:space:]]*//;s/<\/version>//') # Check if there are uncommitted changes if [[ -n $(git status --porcelain) ]]; then git add . git commit -m "Build and push v$IMAGE_VERSION" fi # List variables and prompt to continue echo "Variables:" echo "IMAGE_NAME=$IMAGE_NAME" echo "IMAGE_REGISTRY=$IMAGE_REGISTRY" echo "IMAGE_VERSION=$IMAGE_VERSION" rm -rf target/ # Clean and build Maven project mvn clean package if [ $? -ne 0 ]; then echo "Maven build failed" exit 1 fi # Build and push Docker image docker build . -t $IMAGE_NAME:$IMAGE_VERSION if [ $? -ne 0 ]; then echo "Docker build failed" exit 1 fi docker tag $IMAGE_NAME:$IMAGE_VERSION $IMAGE_REGISTRY/$IMAGE_NAME:$IMAGE_VERSION docker push $IMAGE_REGISTRY/$IMAGE_NAME:$IMAGE_VERSION if [ "$?" != "0" ]; then echo "Error: Failed to push $IMAGE_REGISTRY/$IMAGE_NAME:$IMAGE_VERSION" exit 1 fi docker tag $IMAGE_NAME:$IMAGE_VERSION $IMAGE_REGISTRY/$IMAGE_NAME:latest docker push $IMAGE_REGISTRY/$IMAGE_NAME:latest if [ "$?" != "0" ]; then echo "Error: Failed to push $IMAGE_REGISTRY/$IMAGE_NAME:latest" exit 1 fi echo "Successfully built and pushed $IMAGE_REGISTRY/$IMAGE_NAME:$IMAGE_VERSION and $IMAGE_REGISTRY/$IMAGE_NAME:latest" echo "Docker image pushed successfully to $IMAGE_REGISTRY/$IMAGE_NAME:$IMAGE_VERSION" # Add and commit changes to git git add . git commit -m "Build and push v$IMAGE_VERSION" # Create annotated tag with commit message git tag -a release-$IMAGE_VERSION -m "Release v$IMAGE_VERSION" # Push changes and tags to remote repository git push && git push --tags echo "Successfully pushed changes and tags to remote repository"