nise/nise-frontend/Build.sh

67 lines
1.8 KiB
Bash
Raw Normal View History

2024-02-14 16:43:11 +00:00
#!/bin/bash
# Set variables
IMAGE_NAME="nise-frontend"
IMAGE_REGISTRY="git.gengo.tech/gengotech"
IMAGE_VERSION=$(jq -r '.version' package.json)
# 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 Angular project
source /usr/share/nvm/init-nvm.sh
nvm use 18.19
ng build --configuration production --aot --output-hashing=all
if [ $? -ne 0 ]; then
echo "ng 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"