Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ Once the PR is merged into the `master` branch, the corresponding images will be

If you need to release alternate versions that do not qualify to be primary versions, do not modify the contents of the [factory/.env](./factory/.env) file in the `master` branch. An example would be to publish images including updated [Node.js releases](https://nodejs.org/en/about/previous-releases) in the category "Maintenance LTS" or "Current". Instead, carry out the following steps:

1. Create a feature branch in the form `<cypress-version>-node-<node.js version>-publish`, for example `13.11.0-node-18.20.3-publish`, branched from the `master` branch. If you are not a member of the Cypress org, make a request via a new issue to create a feature branch.
1. Create a feature branch in the form `<cypress-version>-node-<node.js version>-publish`, for example `15.1.0-node-20.19.4-publish`, branched from the `master` branch. If you are not a member of the Cypress org, make a request via a new issue to create a feature branch.
2. Modify [factory/.env](./factory/.env) with the desired versions. Do not modify the `FACTORY_VERSION`. No new `cypress/factory` image should be published with this process.
3. Modify [factory/docker-compose.yml](./factory/docker-compose.yml) to comment out the creation of `latest` tags. Comment out the `cypress/included` `INCLUDED_IMAGE_SHORT_TAG` to also prevent this tag from being created. This step is essential to avoid the related tags of any existing released images being moved to point to non-primary images.
4. Modify [circle.yml](circle.yml) to push releases from the feature branch.
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,17 +93,17 @@ For each of the `REPOSITORY` image types, see the `Tags` section of each `README

| Image Type README | Example Tag |
| ---------------------------------------------------- | ----------- |
| [cypress/factory README](./factory/README.md#tags) | `5.1.0` |
| [cypress/base README](./base/README.md#tags) | `22.11.0` |
| [cypress/browsers README](./browsers/README.md#tags) | `22.11.0` |
| [cypress/included README](./included/README.md#tags) | `13.16.0` |
| [cypress/factory README](./factory/README.md#tags) | `6.0.1` |
| [cypress/base README](./base/README.md#tags) | `22.19.0` |
| [cypress/browsers README](./browsers/README.md#tags) | `22.19.0` |
| [cypress/included README](./included/README.md#tags) | `15.1.0` |

Images with a specific version tag for `cypress/factory` and `cypress/base` (for example: `cypress/factory:5.1.0` and `cypress/base:22.11.0`) are frozen once they have been published. The same is true for images linked to full browser version tags for `cypress/browsers` and `cypress/included` (for example: `cypress/browsers:node-22.11.0-chrome-131.0.6778.69-1-ff-132.0.2-edge-131.0.2903.51-1` and `cypress/included:cypress-13.16.0-node-22.11.0-chrome-131.0.6778.69-1-ff-132.0.2-edge-131.0.2903.51-1`).
Images with a specific version tag for `cypress/factory` and `cypress/base` (for example: `cypress/factory:6.0.1` and `cypress/base:22.19.0`) are frozen once they have been published. The same is true for images linked to full browser version tags for `cypress/browsers` and `cypress/included` (for example: `cypress/browsers:node-22.19.0-chrome-139.0.7258.154-1-ff-142.0.1-edge-139.0.3405.125-1` and `cypress/included:cypress-15.1.0-node-22.19.0-chrome-139.0.7258.154-1-ff-142.0.1-edge-139.0.3405.125-1`).

The version tags for Chrome and Edge for `Linux/arm64` images, as well as Firefox version tags below `ff-136.x`, do not carry any meaning due to browser unavailability for this platform.
With the tag scheme used by Cypress Docker images, all tags are required to be in place to allow use of Docker's [multi-platform images](https://docs.docker.com/build/building/multi-platform/), irrespective of whether the browser is actually available or not.

`cypress/browsers` and `cypress/included` images are also offered with short-form convenience tags that do not include browser version details (example: `cypress/browsers:22.11.0` and `cypress/included:13.16.0`). The tags that these images refer to can change without notice if browser updates are made.
`cypress/browsers` and `cypress/included` images are also offered with short-form convenience tags that do not include browser version details (example: `cypress/browsers:22.19.0` and `cypress/included:15.1.0`). The tags that these images refer to can change without notice if browser updates are made.

Similarly, the convenience tag `latest`, for each of the image types, changes without notice.

Expand Down
2 changes: 1 addition & 1 deletion base/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

for example:

- `cypress/base:20.14.0`
- `cypress/base:22.19.0`
- `cypress/base:latest`

To avoid unplanned breaking changes, specify a fixed `<node version>` tag, not the `latest` tag.
Expand Down
4 changes: 2 additions & 2 deletions browsers/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@

for example:

- `cypress/browsers:node-20.14.0-chrome-125.0.6422.141-1-ff-126.0.1-edge-125.0.2535.85-1`
- `cypress/browsers:22.11.0`
- `cypress/browsers:node-22.19.0-chrome-139.0.7258.154-1-ff-142.0.1-edge-139.0.3405.125-1`
- `cypress/browsers:22.19.0`
- `cypress/browsers:latest`

To avoid unplanned breaking changes, specify a fixed `<node version>` & `<browser version>` combination tag.
Expand Down
32 changes: 15 additions & 17 deletions factory/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,15 @@ They are not currently published to the npm registry and require the experimenta

The version of Cypress to install (via npm). If the `ARG` variable is unset or an empty string, Cypress is not installed.

Example: `CYPRESS_VERSION='13.11.0'`
Example: `CYPRESS_VERSION='15.1.0'`

[Cypress versions](https://www.npmjs.com/package/cypress)

### CHROME_VERSION

The version of Google Chrome to install. If the `ARG` variable is unset or an empty string, Chrome is not installed. The exact version must be used, no wildcards or shorthands are supported.

Example: `CHROME_VERSION='131.0.6778.264-1'`
Example: `CHROME_VERSION='139.0.7258.154-1'`

[Chrome versions](https://www.ubuntuupdates.org/package/google_chrome/stable/main/base/google-chrome-stable)

Expand All @@ -81,7 +81,7 @@ This browser is currently available only for the `Linux/amd64` platform.

The version of [Google Chrome for Testing](https://developer.chrome.com/blog/chrome-for-testing/) to install. If the `ARG` variable is unset or an empty string, Chrome for Testing is not installed.

Example: `CHROME_FOR_TESTING_VERSION='137.0.7151.70'`
Example: `CHROME_FOR_TESTING_VERSION='139.0.7258.154'`

Refer to [Chrome for Testing availability](https://googlechromelabs.github.io/chrome-for-testing/) for current versions or [available downloads](https://googlechromelabs.github.io/chrome-for-testing/files) for other versions.

Expand All @@ -91,7 +91,7 @@ The parameter `CHROME_FOR_TESTING_VERSION` can be used for custom-built images b

The version of Mozilla Firefox to install. If the `ARG` variable is unset or an empty string, Firefox is not installed. The exact version must be used, no wildcards or shorthands are supported.

Example: `FIREFOX_VERSION='134.0'`
Example: `FIREFOX_VERSION='142.0.1'`

[Firefox versions](https://download-installer.cdn.mozilla.net/pub/firefox/releases/)

Expand All @@ -109,7 +109,7 @@ Example: `GECKODRIVER_VERSION='0.36.0'`

The version of Microsoft Edge to install. If the `ARG` variable is unset or an empty string, Edge is not installed. The exact version must be used, no wildcards or shorthands are supported.

Example: `EDGE_VERSION='131.0.2903.112-1'`
Example: `EDGE_VERSION='139.0.3405.125-1'`

[Edge versions](https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/)

Expand Down Expand Up @@ -165,9 +165,9 @@ Create a `Dockerfile` with the following content:
# Args are defined in the Dockerfile before the FROM command.
# Using these args will cause an image to be created with
# Node.js (default version from .env file), Chrome, Firefox and Edge.
ARG CHROME_VERSION='131.0.6778.264-1'
ARG EDGE_VERSION='131.0.2903.112-1'
ARG FIREFOX_VERSION='134.0'
ARG CHROME_VERSION='139.0.7258.154-1'
ARG EDGE_VERSION='139.0.3405.125'
ARG FIREFOX_VERSION='142.0.1'

FROM cypress/factory

Expand Down Expand Up @@ -202,7 +202,7 @@ RUN npx cypress install
Run the Docker commands:

```bash
docker build . --build-arg CHROME_VERSION='131.0.6778.264-1' --build-arg EDGE_VERSION='131.0.2903.112-1' --build-arg FIREFOX_VERSION='134.0' -t test
docker build . --build-arg CHROME_VERSION='139.0.7258.154-1' --build-arg EDGE_VERSION='139.0.3405.125-1' --build-arg FIREFOX_VERSION='142.0.1' -t test
docker run -it --rm test npx cypress run -b chrome
```

Expand All @@ -218,9 +218,9 @@ services:
build:
context: .
args:
CHROME_VERSION: '125.0.6422.141-1'
EDGE_VERSION: '125.0.2535.85-1'
FIREFOX_VERSION: '126.0.1'
CHROME_VERSION: '139.0.7258.154-1'
EDGE_VERSION: '139.0.3405.125-1'
FIREFOX_VERSION: '142.0.1'
command: npx cypress run
```

Expand Down Expand Up @@ -251,7 +251,7 @@ Since this example only uses Chrome, removing Edge and Firefox is as simple as n
Create a `Dockerfile` with the following content:

```dockerfile
ARG CHROME_VERSION='131.0.6778.264-1'
ARG CHROME_VERSION='139.0.7258.154-1'

FROM cypress/factory

Expand Down Expand Up @@ -282,8 +282,6 @@ docker build . --build-arg HTTP_PROXY=http://my-corporate-proxy.com:3128 -t test

## Version Testing

Due to the large amount of possible version combinations, we're not able to exhaustively test each combination of versions, nor do we block versions that are incompatible. For example, Cypress 12 removed support for Node.js version 12.0.0. You are still able to generate a container with node 12.0.0 and Cypress 12, but Cypress will fail to run. This is because the factory supports earlier versions of Cypress and must support earlier versions of node.
Due to the large amount of possible version combinations, we're not able to exhaustively test each combination of versions, nor do we block versions that are incompatible. For example, Cypress 12 removed support for Node.js version 12.0.0. You are still able to generate a container with Node.js 12.0.0 and Cypress 12, but Cypress will fail to run. This is because the factory supports earlier versions of Cypress and must support earlier versions of Node.js.

If you run across a combination that should reasonably work, but doesn't, log an issue and we will take a look at supporting it.

Additionally this docker image and containers generated from it are intended for test use only, and are not intended for hosting services in a production environment.
Additionally, Cypress Docker images and containers generated from them are intended for test use only, and are not intended for hosting services in a production environment.
22 changes: 11 additions & 11 deletions included/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@

for example:

- `cypress/included:cypress-13.15.1-node-22.11.0-chrome-130.0.6723.69-1-ff-132.0-edge-130.0.2849.56-1`
- `cypress/included:13.15.1`
- `cypress/included:cypress-15.1.0-node-22.19.0-chrome-139.0.7258.154-1-ff-142.0.1-edge-139.0.3405.125-1`
- `cypress/included:15.1.0`
- `cypress/included:latest`

To avoid unplanned breaking changes, specify a fixed `<cypress version>`, `<node version>` & `<browser version>` combination tag.
Expand Down Expand Up @@ -111,49 +111,49 @@ docker run -it --rm --entrypoint cypress cypress/included info
```

```text
DevTools listening on ws://127.0.0.1:36243/devtools/browser/eb85524a-6459-41d6-b855-94c10cd2b242
DevTools listening on ws://127.0.0.1:37627/devtools/browser/0db3d002-dc65-49b3-83a9-471ea4920af4
Displaying Cypress info...

Detected 3 browsers installed:

1. Chrome
- Name: chrome
- Channel: stable
- Version: 130.0.6723.69
- Version: 139.0.7258.154
- Executable: google-chrome

2. Edge
- Name: edge
- Channel: stable
- Version: 130.0.2849.56
- Version: 139.0.3405.125
- Executable: edge

3. Firefox
- Name: firefox
- Channel: stable
- Version: 132.0
- Version: 142.0.1
- Executable: firefox

Note: to run these browsers, pass <name>:<channel> to the '--browser' field

Examples:
- cypress run --browser firefox
- cypress run --browser chrome
- cypress run --browser edge

Learn More: https://on.cypress.io/launching-browsers

Proxy Settings: none detected
Environment Variables:
CYPRESS_CACHE_FOLDER: /root/.cache/Cypress
CYPRESS_FACTORY_DEFAULT_NODE_VERSION: 22.11.0
CYPRESS_FACTORY_DEFAULT_NODE_VERSION: 22.19.0

Application Data: /root/.config/cypress/cy/development
Browser Profiles: /root/.config/cypress/cy/development/browsers
Binary Caches: /root/.cache/Cypress

Cypress Version: 13.15.1 (stable)
System Platform: linux (Debian - 12.7)
System Memory: 5.16 GB free 4.12 GB
Cypress Version: 15.1.0 (stable)
System Platform: linux (Debian - 13.0)
System Memory: 5.16 GB free 3.79 GB
```

## User
Expand Down