feat: automate .env deployment via GitHub Secrets and local file sync
This commit is contained in:
@@ -15,16 +15,21 @@ jobs:
|
|||||||
|
|
||||||
- name: Deploy via SSH
|
- name: Deploy via SSH
|
||||||
uses: appleboy/ssh-action@v1.0.3
|
uses: appleboy/ssh-action@v1.0.3
|
||||||
|
env:
|
||||||
|
ENV_FILE: ${{ secrets.ENV_FILE }}
|
||||||
with:
|
with:
|
||||||
host: ${{ secrets.VPS_HOST }}
|
host: ${{ secrets.VPS_HOST }}
|
||||||
username: ${{ secrets.VPS_USERNAME }}
|
username: ${{ secrets.VPS_USERNAME }}
|
||||||
key: ${{ secrets.VPS_SSH_KEY }}
|
key: ${{ secrets.VPS_SSH_KEY }}
|
||||||
|
envs: ENV_FILE
|
||||||
script: |
|
script: |
|
||||||
# Modify this path to where your project is stored on the VPS
|
|
||||||
cd /opt/imphenbot || exit
|
cd /opt/imphenbot || exit
|
||||||
|
|
||||||
# Pull latest changes
|
# Pull latest changes
|
||||||
git pull origin main
|
git pull origin main
|
||||||
|
|
||||||
|
# Write environment variables from GitHub Secrets
|
||||||
|
echo "$ENV_FILE" > .env
|
||||||
|
|
||||||
# Build and restart containers
|
# Build and restart containers
|
||||||
docker-compose up -d --build
|
docker-compose up -d --build
|
||||||
|
|||||||
@@ -25,6 +25,17 @@ echo "📦 Syncing files to VPS..."
|
|||||||
$SSH_CMD "mkdir -p $REMOTE_DIR"
|
$SSH_CMD "mkdir -p $REMOTE_DIR"
|
||||||
eval "$RSYNC_CMD ./ $VPS_USER@$VPS_HOST:$REMOTE_DIR"
|
eval "$RSYNC_CMD ./ $VPS_USER@$VPS_HOST:$REMOTE_DIR"
|
||||||
|
|
||||||
|
if [ -f .env ]; then
|
||||||
|
echo "🔒 Copying local .env to VPS..."
|
||||||
|
if [ -z "$SSH_KEY_PATH" ]; then
|
||||||
|
scp -o StrictHostKeyChecking=no .env $VPS_USER@$VPS_HOST:$REMOTE_DIR/.env
|
||||||
|
else
|
||||||
|
scp -i $SSH_KEY_PATH -o StrictHostKeyChecking=no .env $VPS_USER@$VPS_HOST:$REMOTE_DIR/.env
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "⚠️ No local .env found to copy."
|
||||||
|
fi
|
||||||
|
|
||||||
echo "🔄 Rebuilding and restarting Docker containers..."
|
echo "🔄 Rebuilding and restarting Docker containers..."
|
||||||
$SSH_CMD << EOF
|
$SSH_CMD << EOF
|
||||||
cd $REMOTE_DIR
|
cd $REMOTE_DIR
|
||||||
|
|||||||
Reference in New Issue
Block a user