LTDV8/.gitea/workflows/delopy.yml
3944Realms 9bdbf3c7c4
All checks were successful
Deploy to Remote Server / deploy (push) Successful in 9s
修正工作流环境变量主机地址错误v3
2025-10-26 19:41:16 +08:00

94 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 '✅ 部署验证完成'
"