Changeset 288911 in webkit


Ignore:
Timestamp:
Feb 1, 2022, 1:51:21 PM (4 years ago)
Author:
Jonathan Bedard
Message:

[EWS] Fix infinate retry on PR with red ToT
https://bugs.webkit.org/show_bug.cgi?id=235971
<rdar://problem/88344438>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(AnalyzeCompileWebKitResults.analyzeResults): Update message for PRs,
do not retry if base commit has failed to build.
(AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Only send
emails for patch failures.

  • Tools/CISupport/ews-build/steps_unittest.py:

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

Location:
trunk/Tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Tools/CISupport/ews-build/steps.py

    r288836 r288911  
    20412041        compile_without_patch_result = self.getStepResult(compile_without_patch_step)
    20422042
     2043        patch_id = self.getProperty('patch_id', '')
     2044        pr_number = self.getProperty('github.number')
     2045
    20432046        if compile_without_patch_result == FAILURE:
    2044             message = 'Unable to build WebKit without patch, retrying build'
     2047            if pr_number:
     2048                message = 'Unable to build WebKit without PR, please rebase the PR against {}'.format(self.getProperty('basename', 'ToT'))
     2049            else:
     2050                message = 'Unable to build WebKit without patch, retrying build'
     2051
    20452052            self.descriptionDone = message
    20462053            self.send_email_for_preexisting_build_failure()
    20472054            self.finished(FAILURE)
    2048             self.build.buildFinished([message], RETRY)
     2055            # Do not retry PRs, we end up in an infinite retry loop because we don't automatically rebase against ToT
     2056            self.build.buildFinished([message], FAILURE if pr_number else RETRY)
    20492057            return defer.succeed(None)
    20502058
    20512059        self.build.results = FAILURE
    2052         patch_id = self.getProperty('patch_id', '')
    2053         message = 'Patch {} does not build'.format(patch_id)
     2060        sha = self.getProperty('github.head.sha')
     2061        if sha and pr_number:
     2062            message = 'Hash {} for PR {} does not build'.format(sha[:HASH_LENGTH_TO_DISPLAY], pr_number)
     2063        else:
     2064            message = 'Patch {} does not build'.format(patch_id)
    20542065        self.send_email_for_new_build_failure()
    20552066
     
    20572068        self.finished(FAILURE)
    20582069        self.setProperty('build_finish_summary', message)
    2059         if self.getProperty('buildername', '').lower() == 'commit-queue':
    2060             self.setProperty('bugzilla_comment_text', message)
    2061             self.build.addStepsAfterCurrentStep([CommentOnBug(), SetCommitQueueMinusFlagOnPatch()])
    2062         else:
    2063             self.build.addStepsAfterCurrentStep([SetCommitQueueMinusFlagOnPatch()])
     2070
     2071        # FIXME: Need a cq- equivalent for GitHub
     2072        if patch_id:
     2073            if self.getProperty('buildername', '').lower() == 'commit-queue':
     2074                self.setProperty('bugzilla_comment_text', message)
     2075                self.build.addStepsAfterCurrentStep([CommentOnBug(), SetCommitQueueMinusFlagOnPatch()])
     2076            else:
     2077                self.build.addStepsAfterCurrentStep([SetCommitQueueMinusFlagOnPatch()])
    20642078
    20652079    @defer.inlineCallbacks
     
    21042118        try:
    21052119            patch_id = self.getProperty('patch_id', '')
    2106             if not self.should_send_email(patch_id):
     2120            # FIXME: Support pull requests
     2121            if not patch_id or not self.should_send_email(patch_id):
    21072122                return
    21082123            builder_name = self.getProperty('buildername', '')
  • trunk/Tools/CISupport/ews-build/steps_unittest.py

    r288836 r288911  
    12231223        self.assertEqual(self.getProperty('bugzilla_comment_text'), None)
    12241224        self.assertEqual(self.getProperty('build_finish_summary'), 'Patch 1234 does not build')
     1225        return rc
     1226
     1227    def test_pull_request_with_build_failure(self):
     1228        previous_steps = [
     1229            mock_step(CompileWebKit(), results=FAILURE),
     1230            mock_step(CompileWebKitWithoutPatch(), results=SUCCESS),
     1231        ]
     1232        self.setupStep(AnalyzeCompileWebKitResults(), previous_steps=previous_steps)
     1233        self.setProperty('github.number', '1234')
     1234        self.setProperty('github.head.sha', '7496f8ecc4cc8011f19c8cc1bc7b18fe4a88ad5c')
     1235        self.expectOutcome(result=FAILURE, state_string='Hash 7496f8ec for PR 1234 does not build (failure)')
     1236        rc = self.runStep()
     1237        self.assertEqual(self.getProperty('build_finish_summary'), 'Hash 7496f8ec for PR 1234 does not build')
    12251238        return rc
    12261239
  • trunk/Tools/ChangeLog

    r288894 r288911  
     12022-02-01  Jonathan Bedard  <jbedard@apple.com>
     2
     3        [EWS] Fix infinate retry on PR with red ToT
     4        https://bugs.webkit.org/show_bug.cgi?id=235971
     5        <rdar://problem/88344438>
     6
     7        Reviewed by Aakash Jain.
     8
     9        * CISupport/ews-build/steps.py:
     10        (AnalyzeCompileWebKitResults.analyzeResults): Update message for PRs,
     11        do not retry if base commit has failed to build.
     12        (AnalyzeCompileWebKitResults.send_email_for_new_build_failure): Only send
     13        emails for patch failures.
     14        * CISupport/ews-build/steps_unittest.py:
     15
    1162022-02-01  Eric Carlson  <eric.carlson@apple.com>
    217
Note: See TracChangeset for help on using the changeset viewer.