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 repository run: | name: Debug Gitea Environment on: workflow_dispatch: jobs: debug: runs-on: ubuntu-latest steps: - name: Show all environment variables run: | echo "=== 所有环境变量 ===" env | sort echo "=== Gitea 特定变量 ===" env | grep -i gitea echo "=== 目录结构 ===" find / -name ".git" -type d 2>/dev/null | head -10 echo "=== 工作目录内容 ===" find . -type f 2>/dev/null echo "=== 可能的挂载点 ===" ls -la /var/run/act/ 2>/dev/null || echo "/var/run/act/ 不存在" ls -la /workspace/ 2>/dev/null || echo "/workspace/ 不存在" - name: Display repository files run: | echo "=== 自动挂载的仓库文件 ===" echo "当前目录: $PWD" ls -la echo "=== 文件详情 ===" find . -type f | head -20 echo "总文件数: $(find . -type f | wc -l)" echo "总目录数: $(find . -type d | wc -l)" - name: Setup SSH 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 EOF - name: Clean remote directory run: | ssh $REMOTE_HOST " mkdir -p '$REMOTE_PATH' echo '清理目录内容...' find '$REMOTE_PATH' -mindepth 1 -delete 2>/dev/null || true echo '目录清理完成' " - name: Deploy all files run: | echo "开始部署 $(find . -type f | wc -l) 个文件..." 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' "