The Cypress repository utilizes two primary systems for Continuous Integration and Continuous Deployment: CircleCI for testing, building, and releasing, and GitHub Actions for automation, security, and repository maintenance.
CircleCI Usage
CircleCI handles the heavy lifting of the development lifecycle through two main workflows:
- Pull Request Workflow: Triggered by PRs targeting
develop or release/* branches (excluding drafts). It covers building, linting, unit testing, integration testing (across Chrome, Firefox, Electron, and WebKit), system testing, and validating framework integrations (React, Vue, Angular, etc.). - Full Workflow: Triggered by pushes to
develop or release/* branches. This includes the entire PR workflow plus multi-platform builds (Linux, macOS, Windows), binary creation via cypress-publish-binary, binary verification, and release preparation.
GitHub Actions Usage
GitHub Actions manages background tasks and repository health:
- Automation: Daily updates for browser versions and V8 snapshot caches.
- Security: Snyk scans (SCA and Static Analysis) on PRs.
- PR Validation: Ensures PR titles follow conventional commit formats.
- Maintenance: Automated triaging and stale issue management.
- Compliance: Generation of Software Bill of Materials (SBOM) for releases.