-
-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Description
Summary
Update Cypress from v14.0.2 to v15.9.0 and upgrade CI Node.js versions to meet requirements.
Parent Issue
Closes part of #5364 #5369 (Remaining Dependency Updates)
Current State
- Current Version:
cypress@14.0.2 - Target Version:
cypress@15.9.0 - Blocker: Requires Node.js 20.1+ (CI currently uses Node 18.x which is EOL)
Motivation
- Node.js 18.x reached End of Life on April 30, 2025
- Cypress 15 includes bug fixes and new features
- Better browser support
- Security updates
Implementation Plan
Phase 1: Update CI Node.js Versions
Update .github/workflows/node.js.yml:
Before:
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]After:
strategy:
matrix:
node-version: [20.x, 22.x, 24.x]Rationale:
- Node.js 18.x is EOL
- Cypress 15 requires Node.js 20.1+
- Testing on 20.x, 22.x, 24.x covers current LTS and latest versions
Phase 2: Update Cypress
npm install --save-dev cypress@^15.9.0Phase 3: Verify Cypress Configuration
Check cypress.config.js (or cypress.json) for any deprecated options:
// Ensure configuration is compatible with Cypress 15
// Most configs should work without changesPhase 4: Run Cypress Tests
npm run cypress:runExpected: All existing tests should pass.
Testing Checklist
Automated Tests
-
npm run cypress:runpasses locally - All Cypress test specs pass
- No new warnings or errors
- Screenshots/videos are generated correctly
CI/CD Verification
- CI runs on Node.js 20.x
- CI runs on Node.js 22.x
- CI runs on Node.js 24.x
- All matrix builds pass
Manual Verification (Optional)
npx cypress open- Cypress Test Runner opens
- Can select and run tests interactively
- Browser selection works
Breaking Changes in Cypress 15
1. Node.js Requirement
- Minimum: Node.js 20.1.0
- Recommended: Node.js 20.x LTS or higher
2. Deprecated APIs Removed
Check Cypress 15 Changelog for any APIs that were deprecated in v14 and removed in v15.
3. Browser Support
Cypress 15 may drop support for older browser versions. Verify that the browsers used in CI are still supported.
Files Modified
package.json- Update Cypress versionpackage-lock.json- Auto-generated.github/workflows/node.js.yml- Update Node.js versions
CI/CD Impact
Current CI Setup
# .github/workflows/node.js.yml
strategy:
matrix:
node-version: [18.x, 20.x, 22.x]Updated CI Setup
# .github/workflows/node.js.yml
strategy:
matrix:
node-version: [20.x, 22.x, 24.x]Impact:
- Removes Node.js 18.x (EOL)
- Adds Node.js 24.x (latest)
- Ensures Cypress 15 compatibility
Benefits
- ✅ Latest Cypress features and bug fixes
- ✅ Better performance
- ✅ Improved browser support
- ✅ Security updates
- ✅ Active maintenance
- ✅ CI runs on supported Node.js versions
Rollback Plan
If issues arise:
# Revert Cypress
npm install --save-dev cypress@14.0.2
# Revert CI Node.js versions
# Edit .github/workflows/node.js.yml back to [18.x, 20.x, 22.x]Compatibility Notes
Local Development
✅ Already compatible - Using Node.js 24.11.1
CI/CD
Dependencies
✅ No conflicts - Cypress 15 works with existing dependencies
Migration Checklist
- Update
.github/workflows/node.js.yml - Update
package.jsonCypress version - Run
npm install - Run
npm run cypress:runlocally - Verify all tests pass
- Push changes and verify CI passes
- Check all Node.js versions in CI matrix
References
- Cypress 15 Release Notes
- Cypress 15 Migration Guide
- Node.js Release Schedule
- Node.js 18.x EOL Announcement
Contributor
Note for Reviewers: This update is necessary because Node.js 18.x is EOL. The Cypress update itself is straightforward, but requires updating the CI Node.js matrix.
Checklist
- I have read and followed the project's code of conduct.
- I have searched for similar issues before creating this one.
- I have provided all the necessary information to understand and reproduce the issue.
- I am willing to contribute to the resolution of this issue.
Thank you for contributing to our project! We appreciate your help in improving it.
📚 See contributing instructions.
🙋🏾🙋🏼 Questions: Community Matrix Server.