Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Implementation:Cypress io Cypress BuildCypressApp

From Leeroopedia
Knowledge Sources
Domains Build, Release_Engineering
Last Updated 2026-02-12 00:00 GMT

Overview

Concrete tool for packaging the Cypress Electron application into platform-specific binaries provided by the build scripts and electron-builder.

Description

The buildCypressApp function (scripts/binary/build.ts:L74-115) orchestrates the packaging process. It uses electron-builder configured via electron-builder.json and platform utilities from scripts/binary/meta.ts. The electron-builder configuration specifies file inclusions, hooks (afterPack, afterSign), and platform-specific settings.

Usage

Called during the CI release pipeline to produce platform-specific binaries.

Code Reference

Source Location

  • Repository: cypress-io/cypress
  • Files:
    • scripts/binary/build.ts:L74-115 (buildCypressApp)
    • electron-builder.json:L1-27 (packaging config)
    • scripts/binary/meta.ts:L1-107 (platform utilities)

Signature

interface BuildCypressAppOpts {
  platform: 'darwin' | 'linux' | 'win32'
  version: string
  skipSigning?: boolean
}

async function buildCypressApp(options: BuildCypressAppOpts): Promise<void>

Import

import { buildCypressApp } from './binary/build'

I/O Contract

Inputs

Name Type Required Description
options.platform string Yes Target platform: 'darwin', 'linux', or 'win32'
options.version string Yes Version string for the binary
options.skipSigning boolean No Skip code signing step

Outputs

Name Type Description
Binary directory Platform-specific binary in build/<platform>/
Cypress.app macOS app macOS application bundle (darwin)
linux-unpacked directory Linux binary directory
win-unpacked directory Windows binary directory

Usage Examples

Build for macOS

await buildCypressApp({
  platform: 'darwin',
  version: '13.7.0',
})
// Output: build/darwin/Cypress.app

electron-builder.json

{
  "appId": "com.electron.cypress",
  "productName": "Cypress",
  "afterPack": "./scripts/after-pack-hook.js",
  "afterSign": "./scripts/after-sign-hook.js",
  "files": ["packages/**/*", "cli/**/*"],
  "mac": { "target": "dir" },
  "linux": { "target": "dir" },
  "win": { "target": "dir" }
}

Related Pages

Implements Principle

Requires Environment

Uses Heuristic

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment