修正工作流环境变量主机地址错误v2
Some checks failed
Deploy to Remote Server / deploy (push) Failing after 1m35s

This commit is contained in:
叁玖领域 2025-10-26 19:23:27 +08:00
parent 0d43fb8afe
commit f8cd23f1ca

View File

@ -3,7 +3,6 @@ name: Deploy to Remote Server
on: on:
push: push:
branches: [ main, master ] branches: [ main, master ]
# 也可以手动触发
workflow_dispatch: workflow_dispatch:
env: env:
@ -20,33 +19,63 @@ jobs:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup SSH - name: Setup SSH with relaxed settings
run: | run: |
mkdir -p ~/.ssh mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa
ssh-keyscan -p $SSH_PORT $REMOTE_HOST >> ~/.ssh/known_hosts
# 禁用严格的主机密钥检查
cat >> ~/.ssh/config << EOF
Host $REMOTE_HOST
HostName $REMOTE_HOST
User $REMOTE_USER
Port $SSH_PORT
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
LogLevel ERROR
EOF
- name: Test basic connection
run: |
ssh $REMOTE_HOST "echo 'SSH连接测试成功'"
- name: Prepare remote directory - name: Prepare remote directory
run: | run: |
ssh -p $SSH_PORT $REMOTE_USER@$REMOTE_HOST " ssh $REMOTE_HOST "
mkdir -p '$REMOTE_PATH' mkdir -p '$REMOTE_PATH'
# 安全清理目录内容 echo '目录已创建或已存在'
if [ \"\$(ls -A '$REMOTE_PATH' 2>/dev/null)\" ]; then ls -la '$REMOTE_PATH' | head -10
rm -rf '$REMOTE_PATH'/* "
echo 'Directory cleaned'
- name: Clean directory
run: |
ssh $REMOTE_HOST "
if [ -d '$REMOTE_PATH' ]; then
echo '开始清理目录...'
rm -rf '$REMOTE_PATH'/* 2>/dev/null || true
rm -rf '$REMOTE_PATH'/.* 2>/dev/null || true
echo '目录清理完成'
else
echo '目录不存在,跳过清理'
fi fi
" "
- name: Transfer files with tar - name: Deploy files
run: | run: |
# 使用tar管道传输保留文件权限和结构 echo "开始部署文件..."
tar czf - --exclude='.git' --exclude='.github' . | \ tar czf - --exclude='.git' --exclude='.github' . | ssh $REMOTE_HOST "cd '$REMOTE_PATH' && tar xzf -"
ssh -p $SSH_PORT $REMOTE_USER@$REMOTE_HOST "cd '$REMOTE_PATH' && tar xzf -" echo "文件部署完成"
- name: Set proper permissions - name: Verify deployment
run: | run: |
ssh -p $SSH_PORT $REMOTE_USER@$REMOTE_HOST " ssh $REMOTE_HOST "
chmod -R 755 '$REMOTE_PATH' echo '=== 部署验证 ==='
echo 'Permissions set' echo '目录大小:'
du -sh '$REMOTE_PATH'
echo '文件数量:'
find '$REMOTE_PATH' -type f | wc -l
echo '目录内容:'
ls -la '$REMOTE_PATH' | head -10
" "