cypress-io / cypress-docker-images

Docker images with Cypress dependencies and browsers
https://on.cypress.io/continuous-integration
MIT License
1.02k stars 380 forks source link

Outdated Node.js 18.x images #1082

Closed MikeMcC399 closed 4 months ago

MikeMcC399 commented 4 months ago

Issue

The latest available Cypress Docker images with Node.js 18.x are based on Node.js 18.16.1 which is more than one year old. The images are missing all Node.js updates that were published during the last year up until Node.js 18.20.3.

Latest Node.js 18.x images:

Repository Tag
cypress/base 18.16.1
cypress/browsers node-18.16.1-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1
cypress/included cypress-12.17.3-node-18.16.1-chrome-114.0.5735.133-1-ff-114.0.2-edge-114.0.1823.51-1

The Node.js 18 changelog shows

This is also an opportunity to backport other updates to Node.js 18.x images.:

Suggestion

Considering that Node.js 18.x has had multiple updates since the last Cypress Docker release and that Node.js 18.x LTS Maintenance Status lifetime continues for another year until until end-of-life on April 30, 2025, it makes good sense to release a refreshed set of Cypress Docker images based on the latest Node.js 18.x release.

CONTRIBUTING > Publishing images describes the process:

In general, factory/.env master should contain the latest versions we officially support. If you need to release an older version please modify circle.yml to push releases from a feature branch instead of setting the version in master to older versions.

Steps to implement

  1. Agree on goal to refresh images for Node.js 18.x. Based on current versions that would be:
Repository Tag
cypress/base 18.20.3
cypress/browsers node-18.20.3-chrome-125.0.6422.60-1-ff-126.0-edge-125.0.2535.51-1
cypress/included cypress-13.10.0-node-18.20.3-chrome-125.0.6422.60-1-ff-126.0-edge-125.0.2535.51-1
  1. Create a feature branch, for instance 13.10.0-node-18.20.3-publish. This has to be done by the Cypress.io team.
  2. Create a new PR, based on the current master branch, which sets the following and targets the previously mentioned feature branch:
    • FACTORY_DEFAULT_NODE_VERSION to 18.20.3 in factory/.env
    • modify circle.yml to release cypress/base, cypress/browsers and cypress/included from the feature branch
  3. Review and merge PR into the feature branch.
MikeMcC399 commented 4 months ago

A feature branch https://github.com/MikeMcC399/cypress-docker-images/tree/13.10.0-node-18.20.3-publish is ready. It needs a corresponding feature branch 13.10.0-node-18.20.3-publish creating in the main repo https://github.com/cypress-io/cypress-docker-images in order to open a corresponding PR.

The branch must not be merged into the master branch.

MikeMcC399 commented 4 months ago
MikeMcC399 commented 4 months ago

The following Cypress Docker images based on Node.js 18.20.3 have been released and are available on Cypress at Docker Hub:

Repository Tag
cypress/base cypress/base:18.20.3
cypress/browsers cypress/browsers:node-18.20.3-chrome-125.0.6422.141-1-ff-126.0.1-edge-125.0.2535.85-1
cypress/included cypress/included:cypress-13.11.0-node-18.20.3-chrome-125.0.6422.141-1-ff-126.0.1-edge-125.0.2535.85-1