File: /var/www/ai-notam/build.sh
#!/usr/bin/env bash
case $1 in
prod)
echo "Deploy to PRODUCTION"
SERVER=notam.aeromap.pro
PROJECT_PATH=/home/docker-repos/notam-neuro
SSHUSER=devuser
SERVER_USER=devuser
;;
*)
echo -n "Choose correct deploy env please"
exit 1
;;
esac
function title() {
printf "\033[93m%s\033[0m\n" "$1"
}
whoami
# shellcheck disable=SC2164
cd laravel
title 'Сборка composer'
docker run --rm --interactive \
--volume .:/app \
composer install --no-plugins --ignore-platform-reqs
# shellcheck disable=SC2181
if [ $? -ne 0 ]
then
exit 1
fi
title 'Сборка yarn'
export NVM_DIR="$HOME/.nvm" && . "$NVM_DIR/nvm.sh" --no-use
nvm use v20.15.0
npm i && npm run build
if [ $? -ne 0 ]
then
exit 1
fi
# shellcheck disable=SC2103
cd ..
title 'Сливаем на сервер'
rsync -az --delete --chown="$SERVER_USER":"$SERVER_USER" --exclude-from='exclude-file.txt' --force --progress -e "ssh -p22" ./ "$SSHUSER"@"$SERVER":"$PROJECT_PATH"
if [ $? -ne 0 ]
then
exit 1
fi
title 'Выполняем миграции'
ssh $SSHUSER@$SERVER "docker exec notam-php php laravel/artisan migrate --force"
if [ $? -ne 0 ]
then
exit 1
fi