This commit is contained in:
+33
-4
@@ -82,13 +82,42 @@ jobs:
|
||||
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
echo "Testing DNS..."
|
||||
getent hosts "$DEPLOY_HOST"
|
||||
|
||||
echo "Testing SSH port..."
|
||||
timeout 10 bash -c "</dev/tcp/$DEPLOY_HOST/${DEPLOY_PORT:-22}"
|
||||
|
||||
echo "Preparing SSH..."
|
||||
mkdir -p ~/.ssh
|
||||
printf '%s\n' "$DEPLOY_SSH_KEY" > ~/.ssh/deploy_key
|
||||
chmod 600 ~/.ssh/deploy_key
|
||||
|
||||
echo "Getting host key..."
|
||||
ssh-keyscan -p "${DEPLOY_PORT:-22}" -H "$DEPLOY_HOST" >> ~/.ssh/known_hosts
|
||||
|
||||
scp -i ~/.ssh/deploy_key -P "${DEPLOY_PORT:-22}" \
|
||||
docker-compose.prod.yml "$DEPLOY_USER@$DEPLOY_HOST:$DEPLOY_PATH/docker-compose.yml"
|
||||
echo "Testing SSH authentication..."
|
||||
ssh -i ~/.ssh/deploy_key \
|
||||
-p "${DEPLOY_PORT:-22}" \
|
||||
"$DEPLOY_USER@$DEPLOY_HOST" \
|
||||
"echo 'SSH connection successful'"
|
||||
|
||||
echo "Uploading compose file..."
|
||||
scp -i ~/.ssh/deploy_key \
|
||||
-P "${DEPLOY_PORT:-22}" \
|
||||
docker-compose.prod.yml \
|
||||
"$DEPLOY_USER@$DEPLOY_HOST:$DEPLOY_PATH/docker-compose.yml"
|
||||
|
||||
echo "Deploying..."
|
||||
ssh -i ~/.ssh/deploy_key \
|
||||
-p "${DEPLOY_PORT:-22}" \
|
||||
"$DEPLOY_USER@$DEPLOY_HOST" \
|
||||
"cd '$DEPLOY_PATH' && \
|
||||
IMAGE_TAG='$IMAGE_TAG' docker compose pull && \
|
||||
IMAGE_TAG='$IMAGE_TAG' docker compose up -d && \
|
||||
docker image prune -f"
|
||||
|
||||
echo "Deployment successful!"
|
||||
|
||||
ssh -i ~/.ssh/deploy_key -p "${DEPLOY_PORT:-22}" "$DEPLOY_USER@$DEPLOY_HOST" \
|
||||
"cd $DEPLOY_PATH && IMAGE_TAG=$IMAGE_TAG docker compose pull && IMAGE_TAG=$IMAGE_TAG docker compose up -d && docker image prune -f"
|
||||
|
||||
Reference in New Issue
Block a user