Files
rkm-conectasus-ci-sandbox/scripts/version-hotfix.sh.example
Antonio Lopes dos Santos afec302c3e
All checks were successful
build-api-image / build (push) Successful in 51s
init commit
2026-08-04 16:52:02 -03:00

118 lines
3.0 KiB
Bash

#!/bin/bash
GREEN='\033[0;32m'
RED='\033[0;31m'
NO_COLOR='\033[0m'
APP_PATH='.'
API_FILE_PATH="${APP_PATH}/api/composer.json"
FRONTEND_FILE_PATH="${APP_PATH}/frontend/package.json"
while true; do
read -p "New version: " NEW_VERSION
if [[ "${NEW_VERSION}" =~ ^[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+*$ ]]; then
break
else
echo -e "${RED}Invalid version${NO_COLOR}\n"
fi
done
echo
while true; do
echo -e "Version informed: ${GREEN}${NEW_VERSION}${NO_COLOR}"
read -p "Do you want to proceed? (y/n) " answer
case $answer in
[yY] ) break;;
[nN] ) exit 1;;
* ) echo -e "${RED}Invalid answer${NO_COLOR}\n";;
esac
done
echo -e "\n${GREEN}Fetching origin...${NO_COLOR}"
if ! git fetch origin; then
exit 1
fi
CURRENT_BRANCH=$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match)
if [ $CURRENT_BRANCH != 'release-hotfix' ]; then
echo -e "\n${GREEN}Checking out release-hotfix...${NO_COLOR}"
if ! git checkout release-hotfix; then
exit 1
fi
fi
echo -e "\n${GREEN}Pulling on release-hotfix...${NO_COLOR}"
if ! git pull; then
exit 1
fi
echo -e "\n${GREEN}Checking out release-${NEW_VERSION}...${NO_COLOR}"
if ! git checkout -b release-$NEW_VERSION; then
exit 1
fi
API_OLD_VERSION_LINE=$(cat $API_FILE_PATH | grep -i \"version\")
FRONTEND_OLD_VERSION_LINE=$(cat $FRONTEND_FILE_PATH | grep -i \"version\")
NEW_VERSION_LINE="\"version\": \"${NEW_VERSION}\","
API_NEW_VERSION_LINE=" ${NEW_VERSION_LINE}"
FRONTEND_NEW_VERSION_LINE=" ${NEW_VERSION_LINE}"
echo -e "\n${GREEN}Changing api version...${NO_COLOR}"
sed -i "s/${API_OLD_VERSION_LINE}/${API_NEW_VERSION_LINE}/" $API_FILE_PATH
echo -e "${GREEN}Changing frontend version...${NO_COLOR}"
sed -i "s/${FRONTEND_OLD_VERSION_LINE}/${FRONTEND_NEW_VERSION_LINE}/" $FRONTEND_FILE_PATH
echo -e "\n${GREEN}Commiting...${NO_COLOR}"
if ! git commit -am "Altera a versão do sistema para ${NEW_VERSION}"; then
exit 1
fi
echo
while true; do
read -p "Do you want to push? (y/n) " answer
case $answer in
[yY] )
echo -e "\n${GREEN}Pushing on release-${NEW_VERSION}...${NO_COLOR}"
if ! git push -u origin release-$NEW_VERSION; then
exit 1
fi
break
;;
[nN] ) break;;
* ) echo -e "${RED}Invalid answer${NO_COLOR}\n";;
esac
done
echo
while true; do
read -p "Do you want to delete the local branch release-${NEW_VERSION}? (y/n) " answer
case $answer in
[yY] )
echo -e "\n${GREEN}Checking out release-hotfix...${NO_COLOR}"
if ! git checkout release-hotfix; then
exit 1
fi
echo -e "\n${GREEN}Deleting local branch release-${NEW_VERSION}..${NO_COLOR}"
if ! git branch -D release-$NEW_VERSION; then
exit 1
fi
break
;;
[nN] ) break;;
* ) echo -e "${RED}Invalid answer${NO_COLOR}\n";;
esac
done
echo -e "\n${GREEN}Done!${NO_COLOR}"
exit 0