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

使用GitHub Actions+appleboy/scp-action部署服务器遇Tar短读错误

问题分析与解决方案

核心问题

你遇到的短读错误和.ejs文件无关,是appleboy/scp-action的source配置错误导致的:

  • 你设置的source: "/*"会尝试打包整个GitHub Runner的根目录(包括系统核心文件、无权限访问的文件),而非你checkout下来的项目文件,这直接导致tar打包时无法正常读取文件,触发错误。

修复步骤

  1. 修正source路径
    将source改为项目根目录的相对路径,比如:

    source: "."
    # 或者更精确地指定需要部署的文件/目录,比如:
    # source: "./src, ./views, ./public, package.json, app.js"
    

    这样只会打包当前checkout后的项目文件,不会涉及系统文件。

  2. 升级scp-action版本
    你使用的v0.1.4是较旧的版本,存在一些已知的打包问题,建议升级到最新稳定版:

    uses: appleboy/scp-action@v0.1.7 # 可查看官方仓库获取最新版本号
    
  3. 替代部署方案(可选)
    如果scp-action依然有问题,可以改用直接在服务器拉取代码的方式,更稳定:

    - name: Deploy via SSH
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.DEPLOY_IP }}
        username: ${{ secrets.DPLY_USER }}
        password: ${{ secrets.DPLY_PWD }}
        script: |
          cd ${{ secrets.PROJECT_PATH }}
          git pull origin master
          npm install
          pm2 restart 1
    

    这种方式不需要打包传输文件,直接在服务器端拉取最新代码,避免了本地打包的问题。

额外注意

  • 确认target对应的服务器路径存在且有写入权限;
  • 若项目中有.gitignore里的文件不需要部署,scp-action会自动忽略(如果使用./**或.作为source),无需额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:18:21