fix: improve deployment script with error handling and cleanup enhancements
All checks were successful
Deploy Production / deploy (push) Successful in 3m41s
All checks were successful
Deploy Production / deploy (push) Successful in 3m41s
This commit is contained in:
@@ -42,41 +42,45 @@ jobs:
|
|||||||
cd /workspace/repo
|
cd /workspace/repo
|
||||||
scp -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key slipmatz-web.tar.gz docker-compose.yml "$DEPLOY_USER@$DEPLOY_HOST:/tmp/"
|
scp -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key slipmatz-web.tar.gz docker-compose.yml "$DEPLOY_USER@$DEPLOY_HOST:/tmp/"
|
||||||
|
|
||||||
ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key "$DEPLOY_USER@$DEPLOY_HOST" "
|
ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key "$DEPLOY_USER@$DEPLOY_HOST" '
|
||||||
DEPLOY_DIR='/var/www/apps/slipmatz-web'
|
DEPLOY_DIR="/var/www/apps/slipmatz-web"
|
||||||
mkdir -p \$DEPLOY_DIR
|
mkdir -p $DEPLOY_DIR
|
||||||
cd /tmp
|
cd /tmp
|
||||||
docker load < slipmatz-web.tar.gz
|
docker load < slipmatz-web.tar.gz
|
||||||
|
|
||||||
echo 'Removing old slipmatz-web images'
|
echo "Removing old slipmatz-web images"
|
||||||
docker images | grep slipmatz-web | grep -v "\$(docker images slipmatz-web:latest -q)" | awk '{print \$3}' | xargs -r docker rmi -f || true
|
CURRENT_IMAGE=$(docker images slipmatz-web:latest -q)
|
||||||
|
docker images | grep slipmatz-web | grep -v "$CURRENT_IMAGE" | awk "{print \$3}" | xargs -r docker rmi -f || true
|
||||||
|
|
||||||
cp docker-compose.yml \$DEPLOY_DIR/
|
cp docker-compose.yml $DEPLOY_DIR/
|
||||||
cd \$DEPLOY_DIR
|
cd $DEPLOY_DIR
|
||||||
|
|
||||||
# .env file should already exist on server with all required variables
|
echo "Checking .env file"
|
||||||
# Required: NUXT_PUBLIC_*, STRIPE_SECRET_KEY, etc.
|
if [ ! -f .env ]; then
|
||||||
# If it doesn't exist, deployment will fail (this is intentional for security)
|
echo "Error: .env file not found at $DEPLOY_DIR/.env"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
docker compose down || true
|
docker compose down || true
|
||||||
docker image prune -f
|
docker image prune -f
|
||||||
docker network inspect traefik-public >/dev/null 2>&1 || docker network create traefik-public
|
docker network inspect traefik-public >/dev/null 2>&1 || docker network create traefik-public
|
||||||
|
docker network inspect crew-app-net >/dev/null 2>&1 || docker network create crew-app-net
|
||||||
export DOMAIN=slipmatz.com
|
export DOMAIN=slipmatz.com
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
sleep 10
|
sleep 10
|
||||||
rm -f /tmp/slipmatz-web.tar.gz /tmp/docker-compose.yml
|
rm -f /tmp/slipmatz-web.tar.gz /tmp/docker-compose.yml
|
||||||
|
|
||||||
echo 'Aggressive Docker cleanup to reclaim space'
|
echo "Aggressive Docker cleanup to reclaim space"
|
||||||
docker image prune -af --filter "until=24h" || true
|
docker image prune -af --filter "until=24h" || true
|
||||||
docker container prune -f || true
|
docker container prune -f || true
|
||||||
docker volume prune -f || true
|
docker volume prune -f || true
|
||||||
docker builder prune -af --filter "until=48h" || true
|
docker builder prune -af --filter "until=48h" || true
|
||||||
echo 'Docker space usage:'
|
echo "Docker space usage:"
|
||||||
docker system df
|
docker system df
|
||||||
|
|
||||||
echo 'Production deployment completed successfully!'
|
echo "Production deployment completed successfully!"
|
||||||
echo 'Application available at: https://slipmatz.com'
|
echo "Application available at: https://slipmatz.com"
|
||||||
"
|
'
|
||||||
env:
|
env:
|
||||||
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
|
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
|
||||||
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
|
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
|
||||||
|
|||||||
Reference in New Issue
Block a user