Implementation:Cypress io Cypress Npm Release Main
Appearance
| Knowledge Sources | |
|---|---|
| Domains | Release_Engineering, Package_Management |
| Last Updated | 2026-02-12 00:00 GMT |
Overview
Concrete tools for publishing npm packages and uploading binaries to CDN provided by the Cypress release scripts.
Description
Multiple scripts coordinate the release:
- scripts/npm-release.js (L176-216): main() orchestrates npm publishing via releasePackages() (L126-167)
- scripts/binary/index.js (L341-378): deploy.upload() uploads binary zip to S3
- scripts/binary/index.js (L122-148): deploy.release() updates the S3 version manifest
- scripts/prepare-release-artifacts.js (L14-26): prepares artifacts for publishing
Usage
Invoked by CI pipeline scripts during the release phase.
Code Reference
Source Location
- Repository: cypress-io/cypress
- Files:
- scripts/npm-release.js:L176-216 (main)
- scripts/npm-release.js:L126-167 (releasePackages)
- scripts/binary/index.js:L341-378 (deploy.upload)
- scripts/binary/index.js:L122-148 (deploy.release)
- scripts/prepare-release-artifacts.js:L14-26
Signature
// npm-release.js
async function main() {
// Calls releasePackages() for npm publish
// Verifies npm accessibility
}
// binary/index.js
const deploy = {
async upload() { /* Upload binary zip to S3 */ },
async release() { /* Update version manifest */ },
}
Import
// CLI invocation
node scripts/npm-release.js
node scripts/binary.js deploy-binary
node scripts/binary.js release
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| packages | string[] | Yes | Package names to publish |
| version | string | Yes | Release version |
| Binary zip | file | Yes | Platform-specific binary archive |
| S3 credentials | env vars | Yes | AWS credentials for CDN upload |
| npm token | env var | Yes | npm authentication token |
Outputs
| Name | Type | Description |
|---|---|---|
| npm packages | registry | Published packages on npmjs.com |
| Binary on CDN | S3 | Binary zip accessible via download URL |
| Version manifest | S3 JSON | Updated manifest with new version entry |
Usage Examples
Release Commands
# Prepare artifacts
node scripts/prepare-release-artifacts.js
# Publish npm packages
node scripts/npm-release.js
# Upload binary and update manifest
node scripts/binary.js deploy-binary
node scripts/binary.js release
Related Pages
Implements Principle
Page Connections
Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment