Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dc1f9b0e53f5f3261c9ca1c95f9ce0a60c3a0c10
      
https://github.com/WebKit/WebKit/commit/dc1f9b0e53f5f3261c9ca1c95f9ce0a60c3a0c10
  Author: Ryan Haddad <[email protected]>
  Date:   2026-06-02 (Tue, 02 Jun 2026)

  Changed paths:
    M Tools/CISupport/ews-build/factories.py
    M Tools/CISupport/ews-build/factories_unittest.py
    M Tools/CISupport/ews-build/steps.py
    M Tools/CISupport/ews-build/steps_unittest.py

  Log Message:
  -----------
  EWS should skip building if a pull request contains conflict markers
https://bugs.webkit.org/show_bug.cgi?id=315805
rdar://178093806

Reviewed by Aakash Jain.

While uploading a PR with conflict markers has always been possible, there is 
now automation
that opens pull requests for cherry-picks that require conflict resolution by 
change authors.
This can result EWS builds and tests getting kicked off on changes with 
conflict markers,
causing spurious failures and wasted resources.

This change adds a ValidateChangeContent step that runs right after the pull 
request
is checked out, diffs the PR against its base, and scans added lines for 
column-0 conflict
markers (e.g. <<<<<<< , >>>>>>> , and |||||||). The bare ======= separator is 
intentionally
ignored to avoid Markdown file false positives. The step status summarizes the 
distinct files
involved and the full file:line list is written to the stdio log. On the 
pre-commit
build/test/style/safercpp queues it fails with that summary and halts before 
compiling.

On the merge queue it also comments a formatted list of the conflicted files 
and applies the
merging-blocked label. A failed git diff is treated as SKIPPED to avoid 
blocking on transient
ref-resolution errors.

* Tools/CISupport/ews-build/steps.py:
(ValidateChangeContent): Added build step.
* Tools/CISupport/ews-build/factories.py: Wired the step in after 
CheckOutPullRequest in
Factory, StyleFactory, SaferCPPStaticAnalyzerFactory, and MergeQueueFactoryBase.
* Tools/CISupport/ews-build/factories_unittest.py: Updated expected_steps for 
the new step.
* Tools/CISupport/ews-build/steps_unittest.py: Added TestValidateChangeContent 
and
TestConflictMarkersInDiff.

Canonical link: https://commits.webkit.org/314375@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to