You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git仓库部署到VPS仅生成空目录的问题求助

问题诊断与修复

核心问题:未检出仓库代码

你的Workflow缺少克隆GitHub仓库代码到运行器环境的步骤,导致GitHub Actions工作目录是空的,rsync没有任何文件可同步到VPS,最终只生成空目录。

修复后的Workflow配置

在Deploy to Server步骤前添加actions/checkout步骤,确保代码被拉取到运行器中:

name: Deploy to Production
on:
  push:
    branches:
      - master
jobs:
  deploy-to-server:
    runs-on: ubuntu-latest
    steps:
      # 新增:检出仓库代码到运行器工作目录
      - name: Checkout repository
        uses: actions/checkout@v4
        with:
          fetch-depth: 0 # 可选:如果需要完整Git历史,保留这行

      - name: Deploy to Server
        uses: easingthemes/ssh-deploy@main
        env:
          SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
          REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
          REMOTE_USER: ${{ secrets.REMOTE_USER }}
          REMOTE_PORT: ${{ secrets.REMOTE_PORT }}
          TARGET: ${{ secrets.REMOTE_TARGET }}
          # 可选:添加需要排除的文件/目录,比如依赖包、Git目录
          # EXCLUDE: "/node_modules/, /.git/"

      - name: Dump GitHub context
        env:
          GITHUB_CONTEXT: ${{ toJson(github) }}
        run: echo "$GITHUB_CONTEXT"

新手调试指南

  1. 验证代码是否检出:在Checkout步骤后添加以下步骤,确认工作目录有文件:
    - name: List workspace files
      run: ls -la $GITHUB_WORKSPACE
    
  2. 检查VPS权限:确保REMOTE_USER对TARGET路径有读写权限,否则rsync无法写入文件。
  3. 核对SSH密钥:确认SERVER_SSH_KEY是VPS上对应用户的私钥,且公钥已添加到VPS的~/.ssh/authorized_keys中。

是否需要更换Action?

暂时不需要。easingthemes/ssh-deploy是成熟的部署工具,当前问题完全由缺少代码检出步骤导致。若修复后仍有异常,再考虑更换为appleboy/ssh-action或直接用原生rsync命令手动部署。

内容的提问来源于stack exchange,提问作者JREAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:57:18