github-actions 运行 如何测试(生产)构建结果而不是开发模式

How github-actions run test on (production) build results instead of develop mode

我目前在 Create React App 中有一个这样的 github 操作

name: Percy
on: [push]
jobs:
  percy:
    name: Visual Testing
    runs-on: ubuntu-16.04
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - name: Cypress run
        uses: cypress-io/github-action@v2
        env:
          PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
        with:
          start: yarn start
          wait-on: 'http://localhost:3000'
          command-prefix: 'percy exec -- npx'

但我想 yarn build(而不是 yarn start)和 serve 这些结果用于我的测试(cypress,等等) - 所以我看到测试是如何对已经通过 webpack.

的东西进行的

我尝试了很多不同的方法(比如 start: yarn build && yarn serve -s build -p 3000),但得出的结论是我需要一些指导。

...
$ react-scripts build '&&' yarn serve -s build -p 3000
Creating an optimized production build...
Compiled successfully.

File sizes after gzip:

  49.3 KB  build/static/js/2.98954ae7.chunk.js
  3.01 KB  build/static/js/main.9bc31c1d.chunk.js
  1.13 KB  build/static/css/main.9e43f7ef.chunk.css
  818 B    build/static/css/2.a2fbc952.chunk.css
  779 B    build/static/js/runtime-main.fe4fcbcb.js

The project was built assuming it is hosted at /.
You can control this with the homepage field in your package.json.

The build folder is ready to be deployed.
You may serve it with a static server:

  yarn global add serve
  serve -s build

Find out more about deployment here:

  bit.ly/CRA-deploy

Done in 10.36s.
http://localhost:3000 timed out on retry 61 of 2
Error: connect ECONNREFUSED 127.0.0.1:3000

您可以使用 build parameter to build the app using yarn build and the start 参数来使用 npx serve 启动服务器。

- name: Cypress run
  uses: cypress-io/github-action@v2
  env:
    PERCY_TOKEN: ${{ secrets.PERCY_TOKEN }}
  with:
    build: yarn build
    start: npx serve -s build -l 3000
    wait-on: 'http://localhost:3000'
    command-prefix: 'percy exec -- npx'