Norfeldt
Norfeldt

Reputation: 9678

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

I currently have a github action like this in a Create React App

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'

But I would like to yarn build (instead of yarn start) and serve these results for my tests (cypress, etc) - so I see how the tests goes on something that has gone through webpack.

I have tried a lot of different things (like start: yarn build && yarn serve -s build -p 3000) but have come to the conclusion that I need some guidance.

...
$ 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

Upvotes: 2

Views: 852

Answers (1)

Arun Kumar Mohan
Arun Kumar Mohan

Reputation: 11915

You can use the build parameter to build the app using yarn build and the start parameter to start the server using 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'

Upvotes: 3

Related Questions