我正在建立一个 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 文件并不完全是真正的文件类型,但我不确定如何执行此操作。
任何有关如何执行此操作的帮助或其他建议都会很棒,谢谢!
通过将源目录更正为
./*
而不是 /*
解决了问题
归功于@Azeem