From 8584030633200d0cc2ca962f7369028c77c93f03 Mon Sep 17 00:00:00 2001 From: MythEclipse Date: Sun, 17 May 2026 21:24:54 +0700 Subject: [PATCH] feat: automate .env deployment via GitHub Secrets and local file sync --- .github/workflows/deploy.yml | 7 ++++++- deploy.sh | 11 +++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index ffa23e8..62e557f 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -15,16 +15,21 @@ jobs: - name: Deploy via SSH uses: appleboy/ssh-action@v1.0.3 + env: + ENV_FILE: ${{ secrets.ENV_FILE }} with: host: ${{ secrets.VPS_HOST }} username: ${{ secrets.VPS_USERNAME }} key: ${{ secrets.VPS_SSH_KEY }} + envs: ENV_FILE script: | - # Modify this path to where your project is stored on the VPS cd /opt/imphenbot || exit # Pull latest changes git pull origin main + # Write environment variables from GitHub Secrets + echo "$ENV_FILE" > .env + # Build and restart containers docker-compose up -d --build diff --git a/deploy.sh b/deploy.sh index bebe215..35af15e 100755 --- a/deploy.sh +++ b/deploy.sh @@ -25,6 +25,17 @@ echo "📦 Syncing files to VPS..." $SSH_CMD "mkdir -p $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..." $SSH_CMD << EOF cd $REMOTE_DIR