Skip to content

ci(cypress): prepare dedicated nightly pipeline#1737

Merged
paulfalgout merged 2 commits into
developfrom
feature/fe-181-separate-nightly-cypress-into-its-own-circleci-pipeline
Jul 14, 2026
Merged

ci(cypress): prepare dedicated nightly pipeline#1737
paulfalgout merged 2 commits into
developfrom
feature/fe-181-separate-nightly-cypress-into-its-own-circleci-pipeline

Conversation

@paulfalgout

@paulfalgout paulfalgout commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Closes FE-181

What

  • Rename the shared CircleCI continuation config to .circleci/workflows.yml.
  • Keep regular CI and nightly Cypress on the same job and executor definitions.
  • Document the intended CI, nightly-cypress, and deploy pipeline responsibilities and safe migration order.
  • Briefly poll labels on newly opened PRs so ci:defer-cypress wins the PR-created event race.

Why

Nightly Cypress is operationally separate from PR, branch, tag, and release CI. A dedicated pipeline makes that ownership visible without duplicating the Cypress configuration.

The first live run also showed that CircleCI setup could finish before PR automation attached ci:defer-cypress, starting Cypress despite the intended review hold.

Scope

CircleCI configuration and repository CI documentation only. Cypress commands, recording, parallelism, coverage, notifications, and deploy behavior are unchanged.

Only newly opened PRs receive the short label grace period. Existing human PR revisions without the label continue immediately.

The live CircleCI pipeline definitions and schedule remain unchanged until this PR merges.

Deployment Impact

No application or form redeploy is required.

After merge, CircleCI Project Setup must be updated to:

  1. Rename app-frontend to CI.
  2. Repurpose Test-release as nightly-cypress and point it to .circleci/workflows.yml.
  3. Rename deploy-pipeline to deploy.
  4. Add the existing develop schedule to nightly-cypress.
  5. Remove the old schedule only after the new pipeline produces a successful nightly run.

Testing

  • circleci config validate .circleci/config.yml
  • circleci config validate .circleci/workflows.yml
  • Processed .circleci/workflows.yml with defer_cypress set to both false and true.
  • bash -n .circleci/detect-cypress-defer.sh
  • Live script check against this labeled PR produced defer_cypress: true.
  • Live script check for develop produced defer_cypress: false.
  • npm run lint
  • git diff --check

Current-commit CircleCI passed lint, E2E, component, and Coveralls after the approval gate; Cypress Cloud reports 240 E2E tests passed.

Summary by CodeRabbit

  • Bug Fixes

    • Improved Cypress deferral detection by checking repeatedly for the defer label, reducing race conditions for newly created pull requests.
    • Cypress now runs by default if label detection cannot be completed successfully.
  • Documentation

    • Added guidance for CircleCI pipelines, workflow triggers, schedules, and configuration updates.
    • Updated deployment documentation to reference the current release workflow and secret configuration.

Copilot AI review requested due to automatic review settings July 14, 2026 09:42
@paulfalgout paulfalgout added the ci:defer-cypress Hold required Cypress jobs for approval during AI review iteration label Jul 14, 2026
@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@paulfalgout, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 54 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ecc4f0fa-9eba-4375-8a24-acc4f04d34a4

📥 Commits

Reviewing files that changed from the base of the PR and between 6f2640e and 0454005.

📒 Files selected for processing (1)
  • .circleci/detect-cypress-defer.sh
📝 Walkthrough

Walkthrough

CircleCI continuation routing now uses workflows.yml; pipeline and deployment documentation were aligned, and Cypress deferral detection now retries GitHub label reads before deciding whether to skip Cypress.

Changes

CircleCI updates

Layer / File(s) Summary
Pipeline routing and operational references
.circleci/config.yml, .circleci/workflows.yml, .circleci/README.md, AGENTS.md, docs/deploy.md
Continuation routing, nightly scheduling documentation, deployment references, and CircleCI change guidance now use the shared workflow configuration.
Cypress deferral label polling
.circleci/detect-cypress-defer.sh
The script retries pull request label reads, waits conditionally for recently created pull requests, and runs Cypress by default when all API reads fail.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Suggested reviewers: wweaver4th, nmajor25

Sequence Diagram(s)

sequenceDiagram
  participant DetectScript as detect-cypress-defer.sh
  participant GitHubAPI as GitHub PR API
  participant PipelineParams as pipeline-parameters.json
  DetectScript->>GitHubAPI: Poll PR labels
  GitHubAPI-->>DetectScript: Return open PR labels and creation time
  DetectScript->>PipelineParams: Write defer_cypress decision
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the PR’s main theme of preparing a dedicated nightly Cypress pipeline and related CircleCI configuration changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/fe-181-separate-nightly-cypress-into-its-own-circleci-pipeline

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prepares a dedicated CircleCI nightly-cypress pipeline by renaming the shared continuation config to .circleci/workflows.yml, keeping job/executor definitions shared across pipelines, and documenting the intended responsibilities and migration steps.

Changes:

  • Update the setup continuation to load .circleci/workflows.yml (instead of the prior shared continuation config path).
  • Add .circleci/README.md documenting CI, nightly-cypress, and deploy pipelines plus safe migration order.
  • Update internal docs/references to point to the new workflows config file.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
docs/deploy.md Updates release artifact documentation to point at the tag workflow location in the shared CircleCI workflows config.
AGENTS.md Adds guidance to read .circleci/README.md before modifying CircleCI pipelines/paths/schedules.
.circleci/workflows.yml Minor comment update clarifying that the nightly workflow is scheduled via the dedicated pipeline.
.circleci/README.md New CI documentation describing pipeline responsibilities and migration/safety steps.
.circleci/config.yml Updates continuation configuration_path to .circleci/workflows.yml.

Comment thread docs/deploy.md Outdated
@cypress

cypress Bot commented Jul 14, 2026

Copy link
Copy Markdown

RoundingWell Care Ops Frontend    Run #9062

Run Properties:  status check passed Passed #9062  •  git commit 0454005f2d: fix(ci): wait for AI review label on new PRs
Project RoundingWell Care Ops Frontend
Branch Review feature/fe-181-separate-nightly-cypress-into-its-own-circleci-pipeline
Run status status check passed Passed #9062
Run duration 01m 57s
Commit git commit 0454005f2d: fix(ci): wait for AI review label on new PRs
Committer Paul Falgout
View all properties for this run ↗︎

Test results
Tests that failed  Failures 0
Tests that were flaky  Flaky 1
Tests that did not run due to a developer annotating a test with .skip  Pending 0
Tests that did not run due to a failure in a mocha hook  Skipped 0
Tests that passed  Passing 240
View all changes introduced in this branch ↗︎

@paulfalgout paulfalgout force-pushed the feature/fe-181-separate-nightly-cypress-into-its-own-circleci-pipeline branch from 0376dc2 to c12f4b0 Compare July 14, 2026 09:47

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cubic analysis

All reported issues were addressed

Linked issue analysis

Linked issue: FE-181: Separate nightly Cypress into its own CircleCI pipeline

Status Acceptance criteria Notes
Rename continuation config to .circleci/workflows.yml and update configuration_path in .circleci/config.yml The PR renames the shared continuation config and updates the config reference so dynamic continuation points at the new path.
Move shared workflows into .circleci/workflows.yml and keep Cypress jobs/executors defined once for CI and nightly The shared workflows file is present and the PR keeps the same job/executor definitions while selecting nightly vs normal workflows via pipeline.trigger_source.
Add .circleci/README.md documenting CI, nightly-cypress, and deploy responsibilities and the safe migration order A README describing the three pipelines, the schedule timing, and the rollout steps was added in the PR.
Improve detect-cypress-defer.sh to poll for the defer label and handle API-read failures The script was updated to retry/poll for labels attached shortly after PR creation and to fall back if the API cannot be read.
Update repository docs to reference the renamed shared workflows file Docs referencing the config/workflows path were updated to point at .circleci/workflows.yml.

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread .circleci/detect-cypress-defer.sh Outdated
@paulfalgout paulfalgout force-pushed the feature/fe-181-separate-nightly-cypress-into-its-own-circleci-pipeline branch from c12f4b0 to 04f5a3b Compare July 14, 2026 09:56
@coveralls

coveralls commented Jul 14, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 25

Coverage remained the same at 100.0%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 6218
Covered Lines: 6218
Line Coverage: 100.0%
Relevant Branches: 1933
Covered Branches: 1933
Branch Coverage: 100.0%
Branches in Coverage %: Yes
Coverage Strength: 299.3 hits per line

💛 - Coveralls

@paulfalgout paulfalgout requested a review from nmajor25 July 14, 2026 10:16

@nmajor25 nmajor25 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just one thing claude found, not sure if it's legit.

Comment thread .circleci/detect-cypress-defer.sh Outdated
@paulfalgout paulfalgout force-pushed the feature/fe-181-separate-nightly-cypress-into-its-own-circleci-pipeline branch from 04f5a3b to 6f2640e Compare July 14, 2026 16:27

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.circleci/detect-cypress-defer.sh:
- Around line 23-32: Add explicit connection and overall operation timeouts to
the curl invocation in the GitHub API request block, alongside the existing
--retry option. Keep the current retry, headers, output handling, and failure
branch unchanged while ensuring stalled requests cannot block the PR-label
polling flow indefinitely.
- Around line 36-56: Update the jq parsing blocks that assign defer_cypress and
should_poll to detect command failure instead of allowing set -e to terminate
the script. When either parse fails, set api_read_succeeded=false and break so
the existing default Cypress behavior and output-file handling can run.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 36f0ee57-daef-4144-bcef-a72b2acb3bc9

📥 Commits

Reviewing files that changed from the base of the PR and between 0bea384 and 6f2640e.

📒 Files selected for processing (6)
  • .circleci/README.md
  • .circleci/config.yml
  • .circleci/detect-cypress-defer.sh
  • .circleci/workflows.yml
  • AGENTS.md
  • docs/deploy.md
🚧 Files skipped from review as they are similar to previous changes (5)
  • .circleci/README.md
  • AGENTS.md
  • .circleci/workflows.yml
  • .circleci/config.yml
  • docs/deploy.md

Comment thread .circleci/detect-cypress-defer.sh
Comment thread .circleci/detect-cypress-defer.sh Outdated
@paulfalgout paulfalgout force-pushed the feature/fe-181-separate-nightly-cypress-into-its-own-circleci-pipeline branch from 6f2640e to 0454005 Compare July 14, 2026 16:32
@paulfalgout paulfalgout merged commit 037a0fa into develop Jul 14, 2026
7 checks passed
@paulfalgout paulfalgout deleted the feature/fe-181-separate-nightly-cypress-into-its-own-circleci-pipeline branch July 14, 2026 16:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:defer-cypress Hold required Cypress jobs for approval during AI review iteration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants