首页 > 解决方案 > 使用 GitHub 操作部署反应应用程序的问题

问题描述

我正在尝试构建一个 GitHub 工作流程,将我的反应网站和 PHP 后端部署到服务器(使用 FTP)。FTP 部分有效。

我现在面临的问题是,我需要自动将我构建的前端反应到我的后端的文件结构中。

在本地,我使用的是 Windows,在我的 project.json 中,我使用以下方法移动构建的前端:

"build-webapp:win":  "react-scripts build && RMDIR /S /Q webapp\\html\\static && move build\\static webapp\\html",

这也有效。

由于 GitHub 工作流在 ubuntu-latest 上运行,我实现了等效的

"build-webapp:ci":  "react-scripts build && rm -rf /webapp/html/static && mv /build/static /webapp/html"

当我在 GitHub 操作上运行它时,它给了我以下错误:

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! custom-react-vis-dashboard-v2@0.1.0 build-webapp:ci: `react-scripts build  && rm -rf webapp/html/static && mv build/static webapp/html`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the custom-react-vis-dashboard-v2@0.1.0 build-webapp:ci script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2021-11-05T12_18_53_579Z-debug.log
Error: Process completed with exit code 1.

当我在 GitHub 操作中的“windows-latest”上使用 windows 命令时,我也会遇到同样的错误。

完整的工作流程如下所示:

name: Deploy to development
on:
  push:
    branches:
      - devel
jobs:
  deploy:
    runs-on: ubuntu-latest
    name: Build, Test and Deploy
    steps:
      - name: Checkout 
        uses: actions/checkout@v2
        with:
          persist-credentials: false
      - name: Install
        run: npm install
      - name: Build Webapp
        run:  npm run build-webapp:ci
      - name: List /build
        run: ls ./build
      - name: List /webapp
        run: ls ./webapp
      - name: Deploy webapp
        uses: milanmk/actions-file-deployer@master
        with:
          remote-protocol: "sftp"
          remote-host:  ${{ secrets.FTP_SERVER }}
          remote-user: ${{ secrets.FTP_USER }}
          remote-password:  ${{ secrets.FTP_PASSWORD }}
          remote-path: "/development"
          sync: "full"
          local-path: "webapp/"

我对 GitHub 操作主题很陌生,所以我希望有人可以帮助我。

谢谢

标签: reactjsgithubnpmweb-deploymentgithub-actions

解决方案


好的,我自己解决了,也许这对其他人有帮助:

问题不在于 rm 和 mv ,而是 npm 警告将在此处被视为错误。禁用添加 CI=false 到命令:

"build-webapp:ci": "CI=false && react-scripts build && rm -rf webapp/html/static && mv build/static webapp/html"


推荐阅读