This commit is contained in:
@@ -20,29 +20,41 @@ jobs:
|
||||
if [ -z "$PASSWORD" ]; then echo "Error: SERVER_PASSWORD is not set!"; exit 1; fi
|
||||
echo "Secrets are correctly loaded."
|
||||
|
||||
- name: SSH Remote Commands
|
||||
uses: docker://ghcr.io/appleboy/ssh-action:v1.0.0
|
||||
with:
|
||||
host: ${{ secrets.SERVER_HOST }}
|
||||
username: ${{ secrets.SERVER_USERNAME }}
|
||||
password: ${{ secrets.SERVER_PASSWORD }}
|
||||
port: 22
|
||||
script: |
|
||||
# 进入项目目录
|
||||
- name: Install SSH Tools
|
||||
run: |
|
||||
if command -v apk &> /dev/null; then
|
||||
apk add --no-cache openssh-client sshpass
|
||||
elif command -v apt-get &> /dev/null; then
|
||||
apt-get update -y && apt-get install -y sshpass openssh-client
|
||||
else
|
||||
echo "Unknown package manager. Checking if sshpass is already installed..."
|
||||
fi
|
||||
if ! command -v sshpass &> /dev/null; then echo "Error: sshpass not found and installation failed."; exit 1; fi
|
||||
|
||||
- name: Deploy via SSH
|
||||
env:
|
||||
SSHPASS: ${{ secrets.SERVER_PASSWORD }}
|
||||
run: |
|
||||
sshpass -e ssh -o StrictHostKeyChecking=no -p 22 ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }} << 'EOF'
|
||||
set -e
|
||||
echo "📂 Entering project directory..."
|
||||
cd /root/V2_micropython/
|
||||
|
||||
# 拉取最新代码
|
||||
echo "Pulling latest code..."
|
||||
echo "⬇️ Pulling latest code..."
|
||||
git pull
|
||||
|
||||
# 进入 websocket_server 目录
|
||||
echo "📂 Entering websocket_server directory..."
|
||||
cd websocket_server
|
||||
|
||||
# 重启服务
|
||||
echo "Restarting Docker Compose services..."
|
||||
echo "🔄 Restarting Docker services..."
|
||||
if docker compose version &> /dev/null; then
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
|
||||
# 检查部署状态
|
||||
echo "Checking deployment status..."
|
||||
docker compose ps
|
||||
else
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
docker-compose ps
|
||||
fi
|
||||
echo "✅ Deployment Success!"
|
||||
EOF
|
||||
|
||||
Reference in New Issue
Block a user