https://github.com/currents-dev/circleci-example
Using CircleCI with Currents.dev Dashboard
https://github.com/currents-dev/circleci-example
circleci currents cypress
Last synced: 9 months ago
JSON representation
Using CircleCI with Currents.dev Dashboard
- Host: GitHub
- URL: https://github.com/currents-dev/circleci-example
- Owner: currents-dev
- Created: 2021-11-03T19:57:19.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2023-11-17T22:20:56.000Z (about 2 years ago)
- Last Synced: 2025-03-25T04:52:20.872Z (9 months ago)
- Topics: circleci, currents, cypress
- Language: JavaScript
- Homepage:
- Size: 91.8 KB
- Stars: 0
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Currents.dev - CircleCI Example
This is an example repository that showcases using [CircleCI](https://circleci.com) with [Currents.dev](https://currents.dev).
We are hosting independent versions of the Cypress App and [docker images](https://hub.docker.com/r/currentsdev/cypress-included) with pre-installed binaries. Please refer to the [documentation](https://currents.dev/readme/integration-with-cypress/alternative-cypress-binaries) for the list of supported binaries and versions.
The example [config file](https://github.com/currents-dev/circleci-example/blob/master/.circleci/config.yml) installs the custom Cypress App and runs 3 containers with Cypress tests in parallel using various setup scenarios.
## Prerequisites
- Create an account at https:/app.currents.dev.
- Obtain **ProjectId** and **Record Key**.
- Set `CURRENTS_RECORD_KEY`:
- create [CircleCI context](https://circleci.com/docs/contexts/) and set `CURRENTS_RECORD_KEY`.
- alternatively, set [Environment variable](https://circleci.com/docs/2.0/env-vars/) `CURRENTS_RECORD_KEY`
- Follow the setup instructions at https://currents.dev/readme/integration-with-cypress/cypress-cloud to create `currents.config.js` set your `projectId`
## Bare CircleCI configuration
Please refer to the setup scenario that fits your needs.
### Use Docker image with pre-installed Cypress
CircleCI configuration that uses Docker image with pre-installed cypress app.
Refer to the [documentation](https://currents.dev/readme/integration-with-cypress/alternative-cypress-binaries) for the list of supported binaries and versions.
```yml
version: 2.1
jobs:
# Use pre-built image with alternative Cypress binary
noorbs currents-image:
parallelism: 3
docker:
- image: currentsdev/cypress-included:12.17.4
steps:
- checkout
- run:
name: Install Dependencies
command: npm ci
- run:
name: Run tests
command: npx cypress-cloud run --parallel --record --key $CURRENTS_RECORD_KEY
workflows:
noorbs:
jobs:
- noorbs currents-image:
context: currents
```
### Explicitly downloading alternative Cypress binary
CircleCI configuration that explicitly downloads alternative Cypress binary.
Refer to the [documentation](https://currents.dev/readme/integration-with-cypress/alternative-cypress-binaries) for the list of supported binaries and versions.
```yml
version: 2.1
jobs:
# Explicitly download Cypress binary
noorbs explicit-download:
parallelism: 3
docker:
- image: cypress/base:18.16.1
steps:
- checkout
- run:
name: Install dependencies
command: npm ci
- run:
name: Download Alternative Cypress Binaries
command: CYPRESS_DOWNLOAD_MIRROR=https://cy-cdn.currents.dev npx cypress install --force
- run:
name: Run tests
command: npx cypress-cloud run --parallel --record --key $CURRENTS_RECORD_KEY
workflows:
noorbs:
jobs:
- noorbs explicit-download:
context: currents
```
## Using Cypress Orb with default executor
[Cypress Orb](https://circleci.com/developer/orbs/orb/cypress-io/cypress) has pre-defined commands that facilitate creating CircleCI configuration. The examples below show how to integrate Cypress tests with Currents using Cypress Orb and various setup scenarios.
The examples below use [Custom Test Command](https://github.com/currents-dev/circleci-example/blob/master/.circleci/config.yml#L9) to run `cypress-cloud` for recording test results and parallelization with [Currents.dev](https://currents.dev)
### Using `cypress/default` executor example
The configuration below uses the default `cypress/default` [CircleCI executor](https://circleci.com/docs/executor-intro/) and installs custom Cypress binary during `cypress/install` step:
```yml
version: 2.1
orbs:
cypress: cypress-io/cypress@3
jobs:
# Use cypress/default executor example
default-executor cypress-install:
executor: cypress/default
steps:
- cypress/install:
post-install: CYPRESS_DOWNLOAD_MIRROR=https://cy-cdn.currents.dev npx cypress install --force
- persist_to_workspace:
root: ~/
paths:
- .cache/Cypress
- project
default-executor cypress-run:
executor: cypress/default
parallelism: 3
steps:
- attach_workspace:
at: ~/
- cypress/run-tests:
cypress-command: npx cypress-cloud run --parallel --record --key $CURRENTS_RECORD_KEY
workflows:
with-orbs default-executor:
jobs:
- default-executor cypress-install
- default-executor cypress-run:
context: currents
requires:
- default-executor cypress-install
```
### Using custom executor with pre-installed Cypress App
The configuration below uses the [custom executor](https://circleci.com/docs/executor-intro/) with pre-installed Cypress App.
```yml
version: 2.1
orbs:
cypress: cypress-io/cypress@3
executors:
# define custom executors
currents-executor:
docker:
- image: currentsdev/cypress-included:12.17.4
jobs:
# Use currentsdev executor with pre-installed Cypress binary
custom-executor cypress-install:
executor: currents-executor
steps:
- cypress/install
- persist_to_workspace:
root: ~/
paths:
- project
custom-executor cypress-run:
executor: currents-executor
parallelism: 3
steps:
- attach_workspace:
at: ~/
- cypress/run-tests:
cypress-command: npx cypress-cloud run --parallel --record --key $CURRENTS_RECORD_KEY
workflows:
with-orbs custom-executor:
jobs:
- custom-executor cypress-run:
context: currents
```
---
Here's an example of the demo run in Currents.dev dashboard, note that 3 cypress agents were used as part of this run:
https://user-images.githubusercontent.com/1637928/227703488-9bec973c-de2d-41d0-b811-dfffd370dfb7.mp4