通过 GitHub Actions 和 appleboy/scp-action 部署到服务器失败,并出现 Tar 短读取错误

问题描述 投票:0回答:1

我正在建立一个 Express.js 网站,该网站使用 e.js 作为其渲染引擎。我一直在使用一个成功的部署脚本,该脚本在许多 Node 相关项目中都对我有用,但这将是我第一次使用它来部署 Express 及其相关文件。尽管如此,这些文件可以包括

.js
文件、
.png
文件、
.ejs
文件等等,但是,当我尝试部署时,除了 appleboys 的 scp-action 工具之外,所有文件都运行良好。当前设置使用签出部署文件,该文件成功,但是,当到达压缩步骤时,它立即失败并且不会继续。

部署脚本

name: Deploy to Production
on:
  push:
    branches:
      - master
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v3
      - name: Deploy Files to server
        uses: appleboy/[email protected]
        with:
          host: ${{ secrets.DEPLOY_IP }}
          username: ${{ secrets.DPLY_USER }}
          password: ${{ secrets.DPLY_PWD }}
          overwrite: false
          source: "/*"
          target: ${{ secrets.PROJECT_PATH }}
      - name: Update Server-Side Scripts
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.DEPLOY_IP }}
          username: ${{ secrets.DPLY_USER }}
          password: ${{ secrets.DPLY_PWD }}
          script: |
            cd ${{ secrets.MAIN_PROJECT_PATH }}
            npm install
            pm2 restart 1

运行时出现的错误

所以我知道短读取错误意味着文件已损坏,但我不确定为什么文件突然损坏,或者如何防止它。项目中没有损坏的文件。我有一种感觉,因为 .ejs 文件并不完全是真正的文件类型,但我不确定如何执行此操作。

任何有关如何执行此操作的帮助或其他建议都会很棒,谢谢!

github-actions scp
1个回答
0
投票

通过将源目录更正为

./*
而不是
/*

解决了问题

归功于@Azeem

© www.soinside.com 2019 - 2024. All rights reserved.