All checks were successful
Deploy to Remote Server / deploy (push) Successful in 9s
94 lines
2.6 KiB
YAML
94 lines
2.6 KiB
YAML
name: Deploy to Remote Server
|
||
|
||
on:
|
||
push:
|
||
branches: [ main, master ]
|
||
workflow_dispatch:
|
||
|
||
env:
|
||
REMOTE_HOST: "leisuretimedock.top"
|
||
REMOTE_USER: "root"
|
||
REMOTE_PATH: "/opt/filebrowser/ltd v8"
|
||
SSH_PORT: "22"
|
||
|
||
jobs:
|
||
deploy:
|
||
runs-on: ubuntu-latest
|
||
|
||
steps:
|
||
- name: Display repository files
|
||
run: |
|
||
echo "=== 仓库文件列表 ==="
|
||
ls -la
|
||
echo "=== 文件统计 ==="
|
||
echo "总文件数: $(find . -type f | wc -l)"
|
||
echo "总目录数: $(find . -type d | wc -l)"
|
||
echo "=== 文件详情 ==="
|
||
find . -type f -name "*" | head -20
|
||
|
||
- name: Setup SSH with relaxed settings
|
||
run: |
|
||
mkdir -p ~/.ssh
|
||
chmod 700 ~/.ssh
|
||
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
|
||
chmod 600 ~/.ssh/id_rsa
|
||
|
||
# 禁用严格的主机密钥检查
|
||
cat >> ~/.ssh/config << EOF
|
||
Host $REMOTE_HOST
|
||
HostName $REMOTE_HOST
|
||
User $REMOTE_USER
|
||
Port $SSH_PORT
|
||
StrictHostKeyChecking no
|
||
UserKnownHostsFile /dev/null
|
||
LogLevel ERROR
|
||
EOF
|
||
echo "SSH配置完成"
|
||
|
||
- name: Test basic connection
|
||
run: |
|
||
ssh $REMOTE_HOST "echo '✅ SSH连接测试成功'"
|
||
|
||
- name: Prepare remote directory
|
||
run: |
|
||
ssh $REMOTE_HOST "
|
||
mkdir -p '$REMOTE_PATH'
|
||
echo '✅ 目录已创建或已存在: $REMOTE_PATH'
|
||
echo '当前目录内容:'
|
||
ls -la '$REMOTE_PATH' | head -5 || echo '目录为空'
|
||
"
|
||
|
||
- name: Clean directory
|
||
run: |
|
||
ssh $REMOTE_HOST "
|
||
if [ -d '$REMOTE_PATH' ]; then
|
||
echo '开始清理目录...'
|
||
# 安全删除,避免误删系统文件
|
||
find '$REMOTE_PATH' -mindepth 1 -delete 2>/dev/null || true
|
||
echo '✅ 目录清理完成'
|
||
else
|
||
echo '❌ 目录不存在,创建中...'
|
||
mkdir -p '$REMOTE_PATH'
|
||
fi
|
||
"
|
||
|
||
- name: Deploy files
|
||
run: |
|
||
echo "开始部署文件..."
|
||
# 使用tar管道传输,排除.git目录
|
||
tar czf - --exclude='.git' --exclude='.gitea' . | ssh $REMOTE_HOST "cd '$REMOTE_PATH' && tar xzf -"
|
||
echo "✅ 文件部署完成"
|
||
|
||
- name: Verify deployment
|
||
run: |
|
||
ssh $REMOTE_HOST "
|
||
echo '=== 部署验证 ==='
|
||
echo '目录: $REMOTE_PATH'
|
||
echo '大小:'
|
||
du -sh '$REMOTE_PATH'
|
||
echo '文件数量:'
|
||
find '$REMOTE_PATH' -type f | wc -l
|
||
echo '目录结构:'
|
||
ls -la '$REMOTE_PATH'
|
||
echo '✅ 部署验证完成'
|
||
" |