|
1 | 1 | # cypress-io/github-action [![Action status][ci-badge]][ci-workflow] [![cypress][cloud-badge]][cloud-project] [![renovate-app badge][renovate-badge]][renovate-bot]
|
2 | 2 |
|
3 |
| - > [GitHub Action](https://docs.github.com/en/actions) for running [Cypress](https://www.cypress.io) end-to-end and component tests. Includes npm, pnpm and Yarn 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, pnpm and Yarn installation, custom caching and lots of configuration options. |
4 | 4 |
|
5 |
| - Placing `use: cypress-io/github-action@v6` into a GitHub Action workflow gives you a simple way to run Cypress. The action takes the project's npm, pnpm or Yarn package manager lock file, installs dependencies and caches these dependencies for future use. It then proceeds to run Cypress end-to-end tests with the built-in Electron browser and provides a test summary after completion. |
| 5 | +Placing `use: cypress-io/github-action@v6` into a GitHub Action workflow gives you a simple way to run Cypress. The action takes the project's npm, pnpm or Yarn package manager lock file, installs dependencies and caches these dependencies for future use. It then proceeds to run Cypress end-to-end tests with the built-in Electron browser and provides a test summary after completion. |
6 | 6 |
|
7 |
| - If you are testing against a running server like the [Cypress Kitchen Sink showcase example](https://example.cypress.io/) on https://example.cypress.io/ no other parameters are necessary. In other cases where you need to fire up a development server, you can add the [start](#start-server) parameter to the workflow. Browse through the examples to find other useful parameters. |
| 7 | +If you are testing against a running server like the [Cypress Kitchen Sink showcase example](https://example.cypress.io/) on https://example.cypress.io/ no other parameters are necessary. In other cases where you need to fire up a development server, you can add the [start](#start-server) parameter to the workflow. Browse through the examples to find other useful parameters. |
8 | 8 |
|
9 | 9 | ## Examples
|
10 | 10 |
|
@@ -452,9 +452,11 @@ Please refer to the [default GitHub environment variables](https://docs.github.c
|
452 | 452 | When recording runs to Cypress Cloud, the PR number and URL can be automatically detected if you pass `GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}`
|
453 | 453 | via the workflow `env`. When set, this value enables the Action to perform additional logic that grabs the related PR number and URL (if they
|
454 | 454 | exist) and sets them in the environment variables `CYPRESS_PULL_REQUEST_ID` and `CYPRESS_PULL_REQUEST_URL`, respectively.
|
455 |
| -* See Cypress' documentation on [CI Build Information](https://on.cypress.io/guides/continuous-integration/introduction#CI-Build-Information) |
| 455 | + |
| 456 | +- See Cypress' documentation on [CI Build Information](https://on.cypress.io/guides/continuous-integration/introduction#CI-Build-Information) |
456 | 457 |
|
457 | 458 | Example workflow using the variables:
|
| 459 | + |
458 | 460 | ```yml
|
459 | 461 | name: Example echo PR number and URL
|
460 | 462 | on: push
|
@@ -571,7 +573,6 @@ jobs:
|
571 | 573 | runs-on: ubuntu-24.04
|
572 | 574 | name: E2E
|
573 | 575 | steps:
|
574 |
| -
|
575 | 576 | - name: Checkout
|
576 | 577 | uses: actions/checkout@v4
|
577 | 578 |
|
@@ -736,6 +737,7 @@ The Cypress GH Action does not spawn or create any additional containers - it on
|
736 | 737 | If you use the GitHub Actions facility for [Re-running workflows and jobs](https://docs.github.com/en/actions/managing-workflow-runs/re-running-workflows-and-jobs), note that [Re-running failed jobs in a workflow](https://docs.github.com/en/actions/managing-workflow-runs/re-running-workflows-and-jobs?tool=webui#re-running-failed-jobs-in-a-workflow) is not suited for use with parallel recording into Cypress Cloud. Re-running failed jobs in this situation does not simply re-run failed Cypress tests. Instead it re-runs **all** Cypress tests, load-balanced over the containers with failed jobs.
|
737 | 738 |
|
738 | 739 | To optimize runs when there are failing tests present, refer to optional [Cypress Cloud Smart Orchestration](https://docs.cypress.io/cloud/features/smart-orchestration/overview/) Premium features:
|
| 740 | + |
739 | 741 | - [Spec Prioritization](https://docs.cypress.io/cloud/features/smart-orchestration/spec-prioritization)
|
740 | 742 | - [Auto Cancellation](https://docs.cypress.io/guides/cloud/smart-orchestration/run-cancellation). See also [Specify auto cancel after failures](#specify-auto-cancel-after-failures) for details of how to set this option in a Cypress GH Action workflow.
|
741 | 743 |
|
@@ -796,6 +798,7 @@ jobs:
|
796 | 798 | with:
|
797 | 799 | start: npm start
|
798 | 800 | ```
|
| 801 | + |
799 | 802 | **Caution:** use the `start` parameter only to start a server, not to run Cypress, otherwise tests may be run twice. The action runs Cypress tests by default, unless the parameter `runTests` is set to `false`.
|
800 | 803 |
|
801 | 804 | **Note:** sometimes on Windows you need to run a different start command. You can use the `start-windows` parameter for this.
|
@@ -888,8 +891,6 @@ By default, `wait-on` will retry for 60 seconds. You can pass a custom timeout i
|
888 | 891 | wait-on-timeout: 120
|
889 | 892 | ```
|
890 | 893 |
|
891 |
| - |
892 |
| - |
893 | 894 | You can wait for multiple URLs to respond by separating urls with a comma
|
894 | 895 |
|
895 | 896 | ```yml
|
@@ -1064,7 +1065,7 @@ repo/
|
1064 | 1065 | package-lock.json
|
1065 | 1066 | ```
|
1066 | 1067 |
|
1067 |
| - We use `working-directory: app-test` to match the above example directory structure: |
| 1068 | +We use `working-directory: app-test` to match the above example directory structure: |
1068 | 1069 |
|
1069 | 1070 | ```yml
|
1070 | 1071 | on: push
|
@@ -1429,11 +1430,11 @@ jobs:
|
1429 | 1430 |
|
1430 | 1431 | This action installs local dependencies using lock files. Ensure that exactly one type of lock file is used for each project or working-directory from the following supported package managers:
|
1431 | 1432 |
|
1432 |
| - | Lock file | Package Manager | Installation command | |
1433 |
| - | ------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------- | |
1434 |
| - | `package-lock.json` | [npm](https://docs.npmjs.com/cli/v9/commands/npm-ci) | `npm ci` | |
1435 |
| - | `pnpm-lock.yaml` | [pnpm](https://pnpm.io/cli/install#--frozen-lockfile) | `pnpm install --frozen-lockfile` | |
1436 |
| - | `yarn.lock` | [Yarn Classic](https://classic.yarnpkg.com/en/docs/cli/install#toc-yarn-install-frozen-lockfile) | `yarn --frozen-lockfile` | |
| 1433 | +| Lock file | Package Manager | Installation command | |
| 1434 | +| ------------------- | ------------------------------------------------------------------------------------------------ | -------------------------------- | |
| 1435 | +| `package-lock.json` | [npm](https://docs.npmjs.com/cli/v9/commands/npm-ci) | `npm ci` | |
| 1436 | +| `pnpm-lock.yaml` | [pnpm](https://pnpm.io/cli/install#--frozen-lockfile) | `pnpm install --frozen-lockfile` | |
| 1437 | +| `yarn.lock` | [Yarn Classic](https://classic.yarnpkg.com/en/docs/cli/install#toc-yarn-install-frozen-lockfile) | `yarn --frozen-lockfile` | |
1437 | 1438 |
|
1438 | 1439 | See section [Yarn Modern](#yarn-modern) for information about using Yarn version 2 and later.
|
1439 | 1440 |
|
@@ -1514,7 +1515,7 @@ If you configure a `workflow_dispatch` event in your own workflows, you will be
|
1514 | 1515 |
|
1515 | 1516 | ### Outputs
|
1516 | 1517 |
|
1517 |
| -This action sets a GitHub step output `resultsUrl` if the run was recorded on [Cypress Cloud](https://on.cypress.io/cloud-introduction) using the action parameter setting `record: true` (see [Record test results on Cypress Cloud](#record-test-results-on-cypress-cloud)). Note that using a [Custom test command](#custom-test-command) with the `command` parameter overrides the `record` parameter and in this case no `resultsUrl` step output is saved. |
| 1518 | +This action sets a GitHub step output `resultsUrl` if the run was recorded on [Cypress Cloud](https://on.cypress.io/cloud-introduction) using the action parameter setting `record: true` (see [Record test results on Cypress Cloud](#record-test-results-on-cypress-cloud)). Note that if a custom test command with the [command](#custom-test-command) option or the [command-prefix](#command-prefix) option are used then no `resultsUrl` step output is saved. |
1518 | 1519 |
|
1519 | 1520 | This is an example of using the step output `resultsUrl`:
|
1520 | 1521 |
|
@@ -1697,6 +1698,7 @@ Please see our [Contributing Guideline](./CONTRIBUTING.md) which explains how to
|
1697 | 1698 | This project is licensed under the terms of the [MIT license][license-file].
|
1698 | 1699 |
|
1699 | 1700 | <!-- badge links follow -->
|
| 1701 | + |
1700 | 1702 | [ci-badge]: https://github.com/cypress-io/github-action/actions/workflows/main.yml/badge.svg
|
1701 | 1703 | [ci-workflow]: https://github.com/cypress-io/github-action/actions/workflows/main.yml
|
1702 | 1704 | [cloud-badge]: https://img.shields.io/endpoint?url=https://cloud.cypress.io/badge/simple/3tb7jn/master&style=flat&logo=cypress
|
|
0 commit comments