@cypress/github-action 5.0.1 → 5.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. package/README.md +90 -63
  2. package/action.yml +1 -1
  3. package/dist/index.js +9251 -6156
  4. package/package.json +8 -8
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # cypress-io/github-action [![renovate-app badge][renovate-badge]][renovate-app] [![Action status](https://github.com/cypress-io/github-action/workflows/main/badge.svg?branch=master)](https://github.com/cypress-io/github-action/actions)
1
+ # cypress-io/github-action [![renovate-app badge][renovate-badge]][renovate-bot] [![Action status](https://github.com/cypress-io/github-action/workflows/main/badge.svg?branch=master)](https://github.com/cypress-io/github-action/actions)
2
2
 
3
- > [GitHub Action](https://docs.github.com/en/actions) for running [Cypress](https://www.cypress.io) end-to-end tests. Includes NPM installation, custom caching and lots of configuration options.
3
+ > [GitHub Action](https://docs.github.com/en/actions) for running [Cypress](https://www.cypress.io) end-to-end and component tests. Includes NPM installation, custom caching and lots of configuration options.
4
4
 
5
5
  ## Examples
6
6
 
@@ -49,7 +49,7 @@ name: End-to-end tests
49
49
  on: [push]
50
50
  jobs:
51
51
  cypress-run:
52
- runs-on: ubuntu-20.04
52
+ runs-on: ubuntu-22.04
53
53
  steps:
54
54
  - name: Checkout
55
55
  uses: actions/checkout@v3
@@ -61,7 +61,7 @@ jobs:
61
61
 
62
62
  [![Basic example](https://github.com/cypress-io/github-action/workflows/example-basic/badge.svg?branch=master)](.github/workflows/example-basic.yml)
63
63
 
64
- The workflow file [.github/workflows/example-basic.yml](.github/workflows/example-basic.yml) shows how Cypress runs on GH Actions using Ubuntu (16, 18, or 20), on Windows, and on Mac without additional OS dependencies necessary.
64
+ The workflow file [.github/workflows/example-basic.yml](.github/workflows/example-basic.yml) shows how Cypress runs on GH Actions using Ubuntu (20 and 22), on Windows, and on Mac without additional OS dependencies necessary.
65
65
 
66
66
  **Note:** this package assumes that `cypress` is declared as a development dependency in the `package.json` file. The `cypress` NPM module is required to run Cypress via its [NPM module API](https://on.cypress.io/module-api).
67
67
 
@@ -94,7 +94,7 @@ name: E2E on Chrome
94
94
  on: [push]
95
95
  jobs:
96
96
  cypress-run:
97
- runs-on: ubuntu-20.04
97
+ runs-on: ubuntu-22.04
98
98
  # let's make sure our tests pass on Chrome browser
99
99
  name: E2E on Chrome
100
100
  steps:
@@ -115,9 +115,9 @@ name: Firefox
115
115
  on: push
116
116
  jobs:
117
117
  firefox:
118
- runs-on: ubuntu-latest
118
+ runs-on: ubuntu-22.04
119
119
  container:
120
- image: cypress/browsers:node12.16.1-chrome80-ff73
120
+ image: cypress/browsers:node18.12.0-chrome106-ff106
121
121
  options: --user 1001
122
122
  steps:
123
123
  - uses: actions/checkout@v3
@@ -147,8 +147,6 @@ jobs:
147
147
 
148
148
  [![Edge example](https://github.com/cypress-io/github-action/workflows/example-edge/badge.svg?branch=master)](.github/workflows/example-edge.yml)
149
149
 
150
- **Note:** Microsoft has not released Edge for Linux yet, thus you need to run these tests on Windows or Mac runners with Edge preinstalled. You can use [`cypress info`](https://on.cypress.io/command-line#cypress-info) command to see the browsers installed on the machine.
151
-
152
150
  ### Headed
153
151
 
154
152
  Run the browser in headed mode - as of Cypress v8.0 the `cypress run` command executes tests in `headless` mode by default
@@ -158,7 +156,7 @@ name: Chrome headed
158
156
  on: [push]
159
157
  jobs:
160
158
  cypress-run:
161
- runs-on: ubuntu-20.04
159
+ runs-on: ubuntu-22.04
162
160
  steps:
163
161
  - uses: actions/checkout@v3
164
162
  - uses: cypress-io/github-action@v5
@@ -176,10 +174,10 @@ name: E2E in custom container
176
174
  on: [push]
177
175
  jobs:
178
176
  cypress-run:
179
- runs-on: ubuntu-20.04
180
- # Cypress Docker image with Chrome v78
181
- # and Firefox v70 pre-installed
182
- container: cypress/browsers:node12.13.0-chrome78-ff70
177
+ runs-on: ubuntu-22.04
178
+ # Cypress Docker image with Chrome v106
179
+ # and Firefox v106 pre-installed
180
+ container: cypress/browsers:node18.12.0-chrome106-ff106
183
181
  steps:
184
182
  - uses: actions/checkout@v3
185
183
  - uses: cypress-io/github-action@v5
@@ -196,7 +194,7 @@ name: Cypress tests
196
194
  on: [push]
197
195
  jobs:
198
196
  cypress-run:
199
- runs-on: ubuntu-20.04
197
+ runs-on: ubuntu-22.04
200
198
  steps:
201
199
  - name: Checkout
202
200
  uses: actions/checkout@v3
@@ -214,7 +212,7 @@ name: Cypress tests
214
212
  on: [push]
215
213
  jobs:
216
214
  cypress-run:
217
- runs-on: ubuntu-20.04
215
+ runs-on: ubuntu-22.04
218
216
  steps:
219
217
  - name: Checkout
220
218
  uses: actions/checkout@v3
@@ -240,7 +238,7 @@ on: [push]
240
238
  jobs:
241
239
  cypress-run:
242
240
  name: Cypress run
243
- runs-on: ubuntu-20.04
241
+ runs-on: ubuntu-22.04
244
242
  steps:
245
243
  - name: Checkout
246
244
  uses: actions/checkout@v3
@@ -251,7 +249,7 @@ jobs:
251
249
  spec: cypress/integration/spec1.js
252
250
  ```
253
251
 
254
- You can pass multiple multiple specs and wild card patterns using multi-line parameter, see [example-config.yml](./.github/workflows/example-config.yml):
252
+ You can pass multiple specs and wild card patterns using multi-line parameter, see [example-config.yml](./.github/workflows/example-config.yml):
255
253
 
256
254
  ```yml
257
255
  spec: |
@@ -271,7 +269,7 @@ on: [push]
271
269
  jobs:
272
270
  cypress-run:
273
271
  name: Cypress run
274
- runs-on: ubuntu-20.04
272
+ runs-on: ubuntu-22.04
275
273
  steps:
276
274
  - name: Checkout
277
275
  uses: actions/checkout@v3
@@ -291,7 +289,7 @@ on: [push]
291
289
  jobs:
292
290
  cypress-run:
293
291
  name: Cypress run
294
- runs-on: ubuntu-20.04
292
+ runs-on: ubuntu-22.04
295
293
  steps:
296
294
  - name: Checkout
297
295
  uses: actions/checkout@v3
@@ -323,7 +321,7 @@ on: [push]
323
321
  jobs:
324
322
  cypress-run:
325
323
  name: Cypress run
326
- runs-on: ubuntu-20.04
324
+ runs-on: ubuntu-22.04
327
325
  steps:
328
326
  - name: Checkout
329
327
  uses: actions/checkout@v3
@@ -350,7 +348,7 @@ name: example-quiet
350
348
  on: [push]
351
349
  jobs:
352
350
  cypress-run:
353
- runs-on: ubuntu-latest
351
+ runs-on: ubuntu-22.04
354
352
  steps:
355
353
  - name: Checkout
356
354
  uses: actions/checkout@v3
@@ -374,11 +372,11 @@ name: tags
374
372
  on: [push]
375
373
  jobs:
376
374
  cypress-run:
377
- runs-on: ubuntu-latest
375
+ runs-on: ubuntu-22.04
378
376
  # let's make sure our "app" works on several versions of Node
379
377
  strategy:
380
378
  matrix:
381
- node: [10, 12]
379
+ node: [14, 16, 18]
382
380
  name: E2E on Node v${{ matrix.node }}
383
381
  steps:
384
382
  - name: Setup Node
@@ -415,7 +413,7 @@ name: Artifacts
415
413
  on: [push]
416
414
  jobs:
417
415
  cypress-run:
418
- runs-on: ubuntu-20.04
416
+ runs-on: ubuntu-22.04
419
417
  name: Artifacts
420
418
  steps:
421
419
  - uses: actions/checkout@v3
@@ -449,7 +447,7 @@ on: [push]
449
447
  jobs:
450
448
  cypress-run:
451
449
  name: Cypress run
452
- runs-on: ubuntu-20.04
450
+ runs-on: ubuntu-22.04
453
451
  steps:
454
452
  - name: Checkout
455
453
  uses: actions/checkout@v3
@@ -472,7 +470,7 @@ on: [push]
472
470
  jobs:
473
471
  cypress-run:
474
472
  name: Cypress run
475
- runs-on: ubuntu-20.04
473
+ runs-on: ubuntu-22.04
476
474
  steps:
477
475
  - name: Checkout
478
476
  uses: actions/checkout@v3
@@ -497,7 +495,7 @@ on: [push]
497
495
  jobs:
498
496
  test:
499
497
  name: Cypress run
500
- runs-on: ubuntu-20.04
498
+ runs-on: ubuntu-22.04
501
499
  strategy:
502
500
  # when one test fails, DO NOT cancel the other
503
501
  # containers, because this will kill Cypress processes
@@ -550,7 +548,7 @@ You can run [Cypress component tests](https://on.cypress.io/component-testing) i
550
548
  component: true
551
549
  ```
552
550
 
553
- See the example project [component-test](examples/v10/component-tests/) and the [example-component-test-workflow](.github/workflows/example-component-test.yml) for more details.
551
+ See the example project [component-test](examples/component-tests/) and the [example-component-test-workflow](.github/workflows/example-component-test.yml) for more details.
554
552
 
555
553
  ### Build app
556
554
 
@@ -561,7 +559,7 @@ name: Build
561
559
  on: [push]
562
560
  jobs:
563
561
  cypress-run:
564
- runs-on: ubuntu-20.04
562
+ runs-on: ubuntu-22.04
565
563
  steps:
566
564
  - name: Checkout
567
565
  uses: actions/checkout@v3
@@ -580,7 +578,7 @@ name: With server
580
578
  on: [push]
581
579
  jobs:
582
580
  cypress-run:
583
- runs-on: ubuntu-20.04
581
+ runs-on: ubuntu-22.04
584
582
  steps:
585
583
  - name: Checkout
586
584
  uses: actions/checkout@v3
@@ -597,7 +595,7 @@ name: With server
597
595
  on: [push]
598
596
  jobs:
599
597
  cypress-run:
600
- runs-on: ubuntu-20.04
598
+ runs-on: ubuntu-22.04
601
599
  steps:
602
600
  - name: Checkout
603
601
  uses: actions/checkout@v3
@@ -623,7 +621,7 @@ name: With servers
623
621
  on: [push]
624
622
  jobs:
625
623
  cypress-run:
626
- runs-on: ubuntu-18.04
624
+ runs-on: ubuntu-22.04
627
625
  steps:
628
626
  - name: Checkout
629
627
  uses: actions/checkout@v3
@@ -653,7 +651,7 @@ name: After server responds
653
651
  on: [push]
654
652
  jobs:
655
653
  cypress-run:
656
- runs-on: ubuntu-20.04
654
+ runs-on: ubuntu-22.04
657
655
  steps:
658
656
  - name: Checkout
659
657
  uses: actions/checkout@v3
@@ -728,7 +726,7 @@ name: Visual
728
726
  on: [push]
729
727
  jobs:
730
728
  e2e:
731
- runs-on: ubuntu-20.04
729
+ runs-on: ubuntu-22.04
732
730
  steps:
733
731
  - name: Checkout
734
732
  uses: actions/checkout@v3
@@ -743,8 +741,6 @@ jobs:
743
741
  command-prefix: 'percy exec -- npx'
744
742
  ```
745
743
 
746
- See live example [angular-pizza-creator](https://github.com/cypress-io/angular-pizza-creator).
747
-
748
744
  ### Custom test command
749
745
 
750
746
  You can overwrite the Cypress run command with your own
@@ -771,7 +767,7 @@ name: Parallel
771
767
  on: [push]
772
768
  jobs:
773
769
  test:
774
- runs-on: ubuntu-20.04
770
+ runs-on: ubuntu-22.04
775
771
  strategy:
776
772
  matrix:
777
773
  # run 3 copies of the current job in parallel
@@ -827,33 +823,67 @@ See the [example-custom-ci-build-id.yml](./.github/workflows/example-custom-ci-b
827
823
 
828
824
  ### Working directory
829
825
 
830
- In a monorepo, the end-to-end test might be placed in a different sub-folder from the application itself, like this
826
+ In a monorepo, the end-to-end or component test might be placed in a different sub-folder from the application itself.
827
+
828
+ Using a [Cypress legacy configuration](https://docs.cypress.io/guides/references/legacy-configuration) (Version 9 or earlier) the structure could look like this:
831
829
 
832
830
  ```text
833
831
  repo/
834
832
  app/
835
- e2e/
836
- cypress
833
+ app-test/
834
+ cypress/
835
+ fixtures/
836
+ integration/
837
+ plugins/
838
+ support/
837
839
  cypress.json
838
840
  package.json
839
841
  ```
840
842
 
841
- You can specify the `e2e` working directory when running Cypress tests using `working-directory` parameter
843
+ For End-to-End testing using a [Cypress configuration](https://docs.cypress.io/guides/references/configuration) for Version 10 and later, the structure could look like this :
844
+
845
+ ```text
846
+ repo/
847
+ app/
848
+ app-test/
849
+ cypress/
850
+ e2e/
851
+ fixtures/
852
+ support/
853
+ cypress.config.js
854
+ package.json
855
+ ```
856
+
857
+ Similarly for Component Testing with a [Cypress configuration](https://docs.cypress.io/guides/references/configuration) for Version 10 and later, the structure could look like this:
858
+
859
+ ```text
860
+ repo/
861
+ app/
862
+ app-test/
863
+ cypress/
864
+ component/
865
+ fixtures/
866
+ support/
867
+ cypress.config.js
868
+ package.json
869
+ ```
870
+
871
+ You can specify the `app-test` working directory when running Cypress tests using the `working-directory` parameter
842
872
 
843
873
  ```yml
844
874
  on: [push]
845
875
  jobs:
846
876
  cypress-run:
847
- runs-on: ubuntu-20.04
877
+ runs-on: ubuntu-22.04
848
878
  steps:
849
879
  - uses: actions/checkout@v3
850
880
  - uses: cypress-io/github-action@v5
851
881
  with:
852
882
  start: npm start
853
- working-directory: e2e
883
+ working-directory: app-test
854
884
  ```
855
885
 
856
- See [cypress-gh-action-monorepo](https://github.com/bahmutov/cypress-gh-action-monorepo) for a running example
886
+ See [example-basic.yml](.github/workflows/example-basic.yml) for an End-to-End test example and [example-component-test.yml](.github/workflows/example-component-test.yml) for a Component test example, using the parameter `working-directory`.
857
887
 
858
888
  ### Subfolders
859
889
 
@@ -880,7 +910,7 @@ name: E2E
880
910
  on: push
881
911
  jobs:
882
912
  test:
883
- runs-on: ubuntu-20.04
913
+ runs-on: ubuntu-22.04
884
914
  steps:
885
915
  - uses: actions/checkout@master
886
916
  - name: Install root dependencies
@@ -900,7 +930,7 @@ See [cypress-gh-action-subfolders](https://github.com/bahmutov/cypress-gh-action
900
930
 
901
931
  ### Yarn workspaces
902
932
 
903
- This action should discover Yarn workspace correctly. For example, see folder [examples/v10/start-and-yarn-workspaces](examples/v10/start-and-yarn-workspaces) and workflow file [example-start-and-yarn-workspaces.yml](.github/workflows/example-start-and-yarn-workspaces.yml)
933
+ This action should discover the Yarn workspaces correctly. For example, see folder [examples/start-and-yarn-workspaces](examples/start-and-yarn-workspaces) and workflow file [example-start-and-yarn-workspaces.yml](.github/workflows/example-start-and-yarn-workspaces.yml)
904
934
 
905
935
  ```yaml
906
936
  name: example-start-and-yarn-workspaces
@@ -910,12 +940,12 @@ jobs:
910
940
  # the example has Yarn workspace in its "root" folder
911
941
  # examples/start-and-yarn-workspaces
912
942
  # and tests in a subfolder like "workspace-1"
913
- runs-on: ubuntu-latest
943
+ runs-on: ubuntu-22.04
914
944
  steps:
915
945
  - uses: actions/checkout@v3
916
946
  - uses: cypress-io/github-action@v5
917
947
  with:
918
- working-directory: examples/v10/start-and-yarn-workspaces/workspace-1
948
+ working-directory: examples/start-and-yarn-workspaces/workspace-1
919
949
  build: yarn run build
920
950
  start: yarn start
921
951
  wait-on: 'http://localhost:5000'
@@ -932,11 +962,11 @@ name: End-to-end tests
932
962
  on: [push]
933
963
  jobs:
934
964
  cypress-run:
935
- runs-on: ubuntu-20.04
965
+ runs-on: ubuntu-22.04
936
966
  # let's make sure our "app" works on several versions of Node
937
967
  strategy:
938
968
  matrix:
939
- node: [10, 12]
969
+ node: [14, 16, 18]
940
970
  name: E2E on Node v${{ matrix.node }}
941
971
  steps:
942
972
  - name: Setup Node
@@ -967,10 +997,10 @@ name: Node versions
967
997
  on: [push]
968
998
  jobs:
969
999
  cypress-run:
970
- runs-on: ubuntu-latest
1000
+ runs-on: ubuntu-22.04
971
1001
  strategy:
972
1002
  matrix:
973
- node: [10, 12]
1003
+ node: [14, 16, 18]
974
1004
  name: E2E on Node v${{ matrix.node }}
975
1005
  steps:
976
1006
  - uses: actions/setup-node@v3
@@ -993,7 +1023,7 @@ name: E2E
993
1023
  on: push
994
1024
  jobs:
995
1025
  test:
996
- runs-on: ubuntu-20.04
1026
+ runs-on: ubuntu-22.04
997
1027
  steps:
998
1028
  - uses: actions/checkout@master
999
1029
  - name: Install dependencies
@@ -1046,7 +1076,7 @@ You can tell the CI to stop the job or the individual step if it runs for longer
1046
1076
  ```yml
1047
1077
  jobs:
1048
1078
  cypress-run:
1049
- runs-on: ubuntu-20.04
1079
+ runs-on: ubuntu-22.04
1050
1080
  # stop the job if it runs over 10 minutes
1051
1081
  # to prevent a hanging process from using all your CI minutes
1052
1082
  timeout-minutes: 10
@@ -1069,13 +1099,10 @@ Name | Description
1069
1099
  [cypress-gh-action-monorepo](https://github.com/bahmutov/cypress-gh-action-monorepo) | splits install and running tests commands, runs Cypress from sub-folder
1070
1100
  [cypress-gh-action-subfolders](https://github.com/bahmutov/cypress-gh-action-subfolders) | separate folder for Cypress dependencies
1071
1101
  [cypress-gh-action-split-install](https://github.com/bahmutov/cypress-gh-action-split-install) | only install NPM dependencies, then install and cache Cypress binary yourself
1072
- [cypress-gh-action-vue-example](https://github.com/cypress-io/cypress-gh-action-vue-example) | project was scaffolded using Vue CLI
1073
- [gh-action-and-gh-integration](https://github.com/cypress-io/gh-action-and-gh-integration) | records to the dashboard and has [Cypress GH Integration](https://on.cypress.io/github-integration) app installed
1074
1102
  [test-personal-site](https://github.com/bahmutov/test-personal-site) | Testing an external website every night and by manually clicking a button.
1075
1103
  [cypress-gh-action-changed-files](https://github.com/bahmutov/cypress-gh-action-changed-files) | Shows how to run different Cypress projects depending on changed files
1076
1104
  [cypress-examples](https://github.com/bahmutov/cypress-examples) | Shows separate install job from parallel test jobs
1077
1105
  [cypress-gh-action-split-jobs](https://github.com/bahmutov/cypress-gh-action-split-jobs) | Shows a separate install job with the build step, and another job that runs the tests
1078
- [cypress-and-jest-typescript-example](https://github.com/cypress-io/cypress-and-jest-typescript-example) | Run E2E and Jest unit tests in parallel
1079
1106
  [cypress-react-component-example](https://github.com/bahmutov/cypress-react-component-example) | Run E2E and component tests using this action
1080
1107
  <!-- prettier-ignore-end -->
1081
1108
 
@@ -1191,7 +1218,7 @@ name: included
1191
1218
  on: [push]
1192
1219
  jobs:
1193
1220
  cypress-run:
1194
- runs-on: ubuntu-latest
1221
+ runs-on: ubuntu-22.04
1195
1222
  # Docker image with Cypress pre-installed
1196
1223
  # https://github.com/cypress-io/cypress-docker-images/tree/master/included
1197
1224
  container: cypress/included:3.8.3
@@ -1211,7 +1238,7 @@ name: info
1211
1238
  on: [push]
1212
1239
  jobs:
1213
1240
  cypress-run:
1214
- runs-on: ubuntu-20.04
1241
+ runs-on: ubuntu-22.04
1215
1242
  steps:
1216
1243
  - name: Checkout
1217
1244
  uses: actions/checkout@v3
@@ -1228,7 +1255,7 @@ name: info
1228
1255
  on: [push]
1229
1256
  jobs:
1230
1257
  cypress-run:
1231
- runs-on: ubuntu-20.04
1258
+ runs-on: ubuntu-22.04
1232
1259
  steps:
1233
1260
  - name: Checkout
1234
1261
  uses: actions/checkout@v3
@@ -1259,7 +1286,7 @@ on:
1259
1286
  - cron: '0 4 * * *'
1260
1287
  jobs:
1261
1288
  nightly:
1262
- runs-on: ubuntu-20.04
1289
+ runs-on: ubuntu-22.04
1263
1290
  steps:
1264
1291
  - name: Checkout
1265
1292
  uses: actions/checkout@v3
@@ -1282,4 +1309,4 @@ This is noted as a breaking change ... but you should not see any changes. We ha
1282
1309
  [MIT License](./LICENSE.md)
1283
1310
 
1284
1311
  [renovate-badge]: https://img.shields.io/badge/renovate-app-blue.svg
1285
- [renovate-app]: https://renovateapp.com/
1312
+ [renovate-bot]: https://github.com/renovatebot
package/action.yml CHANGED
@@ -30,7 +30,7 @@ inputs:
30
30
  description: 'A different start command on Windows'
31
31
  required: false
32
32
  build:
33
- description: 'Command to run in build step before starting tests'
33
+ description: 'Command to run build step before starting tests'
34
34
  required: false
35
35
  install:
36
36
  description: 'Whether or not to run install'