Some checks failed
Deploy to Remote Server / deploy (push) Failing after 1m35s
81 lines
2.1 KiB
YAML
81 lines
2.1 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: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- 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
|
|
|
|
- name: Test basic connection
|
|
run: |
|
|
ssh $REMOTE_HOST "echo 'SSH连接测试成功'"
|
|
|
|
- name: Prepare remote directory
|
|
run: |
|
|
ssh $REMOTE_HOST "
|
|
mkdir -p '$REMOTE_PATH'
|
|
echo '目录已创建或已存在'
|
|
ls -la '$REMOTE_PATH' | head -10
|
|
"
|
|
|
|
- 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
|
|
"
|
|
|
|
- name: Deploy files
|
|
run: |
|
|
echo "开始部署文件..."
|
|
tar czf - --exclude='.git' --exclude='.github' . | ssh $REMOTE_HOST "cd '$REMOTE_PATH' && tar xzf -"
|
|
echo "文件部署完成"
|
|
|
|
- name: Verify deployment
|
|
run: |
|
|
ssh $REMOTE_HOST "
|
|
echo '=== 部署验证 ==='
|
|
echo '目录大小:'
|
|
du -sh '$REMOTE_PATH'
|
|
echo '文件数量:'
|
|
find '$REMOTE_PATH' -type f | wc -l
|
|
echo '目录内容:'
|
|
ls -la '$REMOTE_PATH' | head -10
|
|
" |