70 lines
1.8 KiB
Bash
Executable File
70 lines
1.8 KiB
Bash
Executable File
#!/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 "<version>" pom.xml | tail -n1 | sed 's/[[:space:]]*<version>//;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"
|
|
|