-
-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
131 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -14,11 +14,24 @@ version: 2.1 | |
orbs: | ||
codecov: codecov/[email protected] | ||
cypress: cypress-io/[email protected] | ||
|
||
references: | ||
node_supported_lts_versions: &node_supported_lts_versions | ||
- &node_min_supported_version '18.12' | ||
- '18.16.1' | ||
|
||
executors: | ||
cypress-node: | ||
cypress-custom: | ||
description: | | ||
Single Docker container used to run Cypress Tests | ||
docker: | ||
# Primary container image where all steps run. | ||
- image: 'node-18.15.0-chrome-106.0.5249.61-1-ff-99.0.1-edge-114.0.1823.51-1' | ||
- image: cimg/node:<< parameters.node-version >>-browsers | ||
parameters: | ||
node-version: | ||
default: '18.16.1' | ||
description: | | ||
The version of Node to run your tests with. | ||
type: string | ||
|
||
defaults: &defaults | ||
docker: | ||
|
@@ -300,29 +313,124 @@ jobs: | |
docker push ohif/app:$IMAGE_VERSION_FULL | ||
fi | ||
CYPRESS_CUSTOM_RUN: | ||
description: | | ||
A single, complete job to run Cypress end-to-end tests in your application. | ||
executor: cypress-custom | ||
parallelism: << parameters.parallelism >> | ||
parameters: | ||
cypress-cache-key: | ||
default: cypress-cache-{{ arch }}-{{ checksum "package.json" }} | ||
description: Cache key used to cache the Cypress binary. | ||
type: string | ||
cypress-cache-path: | ||
default: ~/.cache/Cypress | ||
description: | | ||
By default, this will cache the '~/.cache/Cypress' directory so that the Cypress binary is cached. You can override this by providing your own cache path. | ||
type: string | ||
cypress-command: | ||
default: npx cypress run | ||
description: Command used to run your Cypress tests | ||
type: string | ||
include-branch-in-node-cache-key: | ||
default: false | ||
description: | | ||
If true, this cache will only apply to runs within the same branch. (Adds -{{ .Branch }}- to the node cache key) | ||
type: boolean | ||
install-browsers: | ||
default: false | ||
description: | | ||
Cypress runs by default in the Electron browser. Use this flag to install additional browsers to run your tests in. | ||
This is only needed if you are passing the `--browser` flag in your `cypress-command`. | ||
This parameter leverages the `circleci/browser-tools` orb and includes Chrome and FireFox. | ||
If you need additional browser support you can set this to false and use an executor with a docker image | ||
that includes the browsers of your choosing. See https://hub.docker.com/r/cypress/browsers/tags | ||
type: boolean | ||
install-command: | ||
default: '' | ||
description: Overrides the default NPM command (npm ci) | ||
type: string | ||
node-cache-version: | ||
default: v1 | ||
description: | ||
Change the default node cache version if you need to clear the cache for any reason. | ||
type: string | ||
package-manager: | ||
default: npm | ||
description: Select the default node package manager to use. NPM v5+ Required. | ||
enum: | ||
- npm | ||
- yarn | ||
- yarn-berry | ||
type: enum | ||
parallelism: | ||
default: 1 | ||
description: | | ||
Number of Circle machines to use for load balancing, min 1 | ||
(requires `parallel` and `record` flags in your `cypress-command`) | ||
type: integer | ||
post-install: | ||
default: '' | ||
description: | | ||
Additional commands to run after running install but before verifying Cypress and saving cache. | ||
type: string | ||
start-command: | ||
default: '' | ||
description: Command used to start your local dev server for Cypress to tests against | ||
type: string | ||
working-directory: | ||
default: '' | ||
description: Directory containing package.json | ||
type: string | ||
steps: | ||
- cypress/install: | ||
cypress-cache-key: << parameters.cypress-cache-key >> | ||
cypress-cache-path: << parameters.cypress-cache-path >> | ||
include-branch-in-node-cache-key: << parameters.include-branch-in-node-cache-key >> | ||
install-browsers: << parameters.install-browsers >> | ||
install-command: << parameters.install-command >> | ||
node-cache-version: << parameters.node-cache-version >> | ||
package-manager: << parameters.package-manager >> | ||
post-install: << parameters.post-install >> | ||
working-directory: << parameters.working-directory >> | ||
- cypress/run-tests: | ||
cypress-command: << parameters.cypress-command >> | ||
start-command: << parameters.start-command >> | ||
working-directory: << parameters.working-directory >> | ||
|
||
workflows: | ||
PR_CHECKS: | ||
jobs: | ||
# - UNIT_TESTS | ||
- cypress/run: | ||
name: 'E2E: PWA' | ||
start-command: sh swap-node-cypress.sh && yarn run test:data && yarn run test:e2e:serve | ||
install-browsers: true | ||
cypress-command: | ||
'npx wait-on@latest http://localhost:3000 && cd platform/app && npx cypress run | ||
--record --browser chrome --parallel' | ||
package-manager: 'yarn' | ||
cypress-cache-key: 'yarn-packages-{{ checksum "yarn.lock" }}' | ||
cypress-cache-path: '~/.cache/Cypress' | ||
post-steps: | ||
- store_artifacts: | ||
path: platform/app/cypress/screenshots | ||
- store_artifacts: | ||
path: platform/app/cypress/videos | ||
- store_test_results: | ||
path: platform/app/cypress/results | ||
# requires: | ||
# - HANDLE_NODE_SWAP | ||
- UNIT_TESTS | ||
|
||
- CYPRESS_CUSTOM_RUN: | ||
name: 'Cypress Tests' | ||
context: cypress | ||
matrix: | ||
parameters: | ||
start-command: | ||
- yarn run test:data && yarn run test:e2e:serve | ||
install-browsers: | ||
- true | ||
cypress-command: | ||
- 'npx wait-on@latest http://localhost:3000 && cd platform/app && npx cypress run | ||
--record --browser chrome --parallel' | ||
package-manager: | ||
- 'yarn' | ||
cypress-cache-key: | ||
- 'yarn-packages-{{ checksum "yarn.lock" }}' | ||
cypress-cache-path: | ||
- '~/.cache/Cypress' | ||
# post-steps: | ||
# - store_artifacts: | ||
# path: platform/app/cypress/screenshots | ||
# - store_artifacts: | ||
# path: platform/app/cypress/videos | ||
# - store_test_results: | ||
# path: platform/app/cypress/results | ||
|
||
# requires: | ||
# - HANDLE_NODE_SWAP | ||
|
||
# PR_OPTIONAL_VISUAL_TESTS: | ||
# jobs: | ||
|