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

GitHub Actions中rsync提示仓库源目录为空但实际有文件的问题

解决GitHub Actions中rsync提示源目录为空的问题

问题场景

我在GitHub Actions中配置了rsync同步仓库文件到远程服务器的工作流,代码如下:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Deploy with rsync
        run: rsync -avuz --delete . ${{ secrets.USER }}@${{ secrets.HOST }}:~/App/MainPage/

执行时rsync提示源目录为空,但仓库实际存在文件。修改源目录为../../时能正常传输文件,说明rsync功能本身正常。

原因分析

GitHub Actions的运行环境默认不会自动拉取你的仓库代码,工作流启动后当前工作目录(.)是空的,因此rsync检测不到任何文件,触发空目录提示。之前用../../能成功是因为该路径指向了运行环境的上层临时目录(包含仓库文件),但这种写法依赖环境目录结构,属于不规范的临时解决方案。

解决方案

在Deploy with rsync步骤前添加actions/checkout@v4步骤,拉取仓库代码到运行环境的工作目录:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository code
        uses: actions/checkout@v4
      
      - name: Deploy with rsync
        run: rsync -avuz --delete . ${{ secrets.USER }}@${{ secrets.HOST }}:~/App/MainPage/

额外注意事项

  • 添加checkout步骤后,运行环境的工作目录会完整包含仓库内的所有文件,rsync即可正常读取并同步。
  • 确保配置的USER和HOST secrets信息正确,且远程服务器的~/App/MainPage/目录有写入权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 15:35:24