Skip to content

Conversation

cacieprins
Copy link
Contributor

@cacieprins cacieprins commented Sep 15, 2025

  • Closes

Additional details

Previously, we had an entirely separate workflow defined for contributor pull requests. This was implemented in order to require maintainer approval for running expensive CI jobs on contributor pull requests.

This consolidates the contributor PR into the primary pull-request workflow, while keeping the same behavior.

The node_modules_install, build, check-ts, lint, and lint-types jobs will still run for external contributors. Any subsequent jobs require that the approve-contributor-pr job be approved by a maintainer. Because the approve-contributor-pr job is conditional based on the branch pattern, declaring it as required for subsequent jobs will only be enforced if that job runs - internal contributor/maintainer PRs will not run that job, so it will be skipped as required.

Steps to test

Fork this branch to another account, and open a pull request. Verify that it prevents expensive jobs from running prior to approval.

How has the user experience changed?

PR Tasks


Note

Consolidates contributor PR CI into the main pull-request workflow with an approval gate, removes the separate contributor workflow, and auto-detects contributor PRs during build.

  • CI Workflows:
    • Consolidation: Fold linux-x64-contributor workflow into workflows/pull-request.yml using a single workflow.
      • Adds approve-contributor-pr gate for branches matching ^pull/[0-9]+$.
      • Splits build into internal-pr-build (non-pull branches) and external-pr-build (pull branches); all subsequent jobs require the appropriate build(s) and approval for external PRs.
      • Reorders finalization jobs; moves percy-finalize and verify-accessibility-results to a dedicated final section.
    • Removal: Deletes the separate contributor workflow block from workflows/@main.yml.
  • Pipeline:
    • Contributor Detection: In @pipeline.yml build step, replaces parameters.is_contributor_pr with branch-based detection (<< pipeline.git.branch >> regex) when invoking scripts/circle-env.js.

Written by Cursor Bugbot for commit 1d87d6a. This will update automatically on new commits. Configure here.

cacieprins and others added 28 commits September 9, 2025 13:54
…cleci config pack to compose them into the main workflows.yml file
@cacieprins cacieprins changed the title ci: extract/consolidate contributor pr workflow chore: extract/consolidate contributor pr workflow Sep 15, 2025
Copy link

cypress bot commented Sep 15, 2025

cypress    Run #66390

Run Properties:  status check failed Failed #66390  •  git commit 1d87d6a0db: Merge branch 'develop' into ci/extract-contributor-workflow
Project cypress
Branch Review ci/extract-contributor-workflow
Run status status check failed Failed #66390
Run duration 20m 35s
Commit git commit 1d87d6a0db: Merge branch 'develop' into ci/extract-contributor-workflow
Committer Cacie Prins
View all properties for this run ↗︎

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

Warning

Partial Report: The results for the Application Quality reports may be incomplete.

UI Coverage  45.27%
  Untested elements 186  
  Tested elements 158  
Accessibility  97.97%
  Failed rules  4 critical   8 serious   2 moderate   2 minor
  Failed elements 101  

Tests for review

Failed  cypress/e2e/studio/studio.cy.ts • 1 failed test • app-e2e

View Output

Test Artifacts
Cypress Studio > updates an existing test with assertions Test Replay Screenshots
Flakiness  e2e/origin/config_env.cy.ts • 1 flaky test • 5x-driver-electron

View Output

Test Artifacts
cy.origin- Cypress.config() > serializable > overwrites different values in secondary if one exists in the primary Test Replay
Flakiness  issues/28527.cy.ts • 1 flaky test • 5x-driver-electron

View Output

Test Artifacts
issue 28527 > fails and then retries and verifies about:blank is not displayed Test Replay Screenshots
Flakiness  issues/28527.cy.ts • 1 flaky test • 5x-driver-chrome

View Output

Test Artifacts
issue 28527 > fails and then retries and verifies about:blank is not displayed Test Replay Screenshots
Flakiness  commands/waiting.cy.js • 2 flaky tests • 5x-driver-chrome:beta

View Output

Test Artifacts
... > errors > throws when route is never resolved Test Replay
... > errors > throws when waiting for 2nd response to route Test Replay
Flakiness  commands/location.cy.js • 1 flaky test • 5x-driver-chrome:beta

View Output

Test Artifacts
... > does not log an additional log on failure Test Replay

The first 5 flaky specs are shown, see all 12 specs in Cypress Cloud.

Base automatically changed from use-pack-for-circle to develop September 19, 2025 13:23
@cacieprins cacieprins marked this pull request as ready for review September 23, 2025 14:26
@cacieprins cacieprins self-assigned this Sep 23, 2025
cursor[bot]

This comment was marked as outdated.

@AtofStryker
Copy link
Contributor

@cacieprins I created #32574 to test this workflow out and job is running on https://app.circleci.com/pipelines/github/cypress-io/cypress/75143

@cacieprins
Copy link
Contributor Author

cacieprins commented Sep 25, 2025

@cacieprins I created #32574 to test this workflow out and job is running on https://app.circleci.com/pipelines/github/cypress-io/cypress/75143

Correct - this is the same pattern as the old linux-x64-contributor-pr. It will run node_modules_install, build, check-ts, lint and lint-types and wait for approval before running anything else

cursor[bot]

This comment was marked as outdated.

Copy link
Contributor

@AtofStryker AtofStryker left a comment

Choose a reason for hiding this comment

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

@cacieprins I think the jobs lacking the approval button are automatically locked
Screenshot 2025-09-25 at 4 38 26 PM

it looks to still be automatically locked after clicking approve and the workflow automatically fails
Screenshot 2025-09-25 at 4 39 50 PM

@cacieprins cacieprins force-pushed the ci/extract-contributor-workflow branch from 663fdbc to 655fce9 Compare October 2, 2025 17:13
@AtofStryker AtofStryker self-requested a review October 3, 2025 15:19
@AtofStryker
Copy link
Contributor

@cacieprins I'm running a contributor PR running against the branch https://app.circleci.com/pipelines/github/cypress-io/cypress/75579

- driver-integration-tests-chrome-beta-inject-document-domain
- driver-integration-tests-electron
- driver-integration-tests-webkit
- driver-integration-memory-tests
Copy link

Choose a reason for hiding this comment

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

Bug: Mutually Exclusive Builds Block Workflow

Many workflow jobs now require both internal-pr-build and external-pr-build. These two build jobs are mutually exclusive, with internal-pr-build running for internal PRs and external-pr-build for external PRs. This setup means one required build will always be skipped, causing dependent jobs to hang indefinitely.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants