Title: [292509] trunk/Tools
Revision
292509
Author
jbed...@apple.com
Date
2022-04-06 15:10:14 -0700 (Wed, 06 Apr 2022)

Log Message

[Merge-Queue] Run `git svn fetch`
https://bugs.webkit.org/show_bug.cgi?id=238759
<rdar://problem/91258277>

Reviewed by Aakash Jain.

* Tools/CISupport/ews-build/factories.py:
(MergeQueueFactory.__init__): Add GitSvnFetch step.
* Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps): Ditto.
* Tools/CISupport/ews-build/steps.py:
(UpdatePullRequest.hideStepIf):
(GitSvnFetch):
(GitSvnFetch.__init__): `git svn fetch` will have a non-zero exit code if the Subversion
record of changes does not match the git one, which will happen imiediately after committing.
(GitSvnFetch.getResultSummary):
(GitSvnFetch.evaluateCommand): Support expected failure.
* Tools/CISupport/ews-build/steps_unittest.py:

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

Modified Paths

Diff

Modified: trunk/Tools/CISupport/ews-build/factories.py (292508 => 292509)


--- trunk/Tools/CISupport/ews-build/factories.py	2022-04-06 21:57:52 UTC (rev 292508)
+++ trunk/Tools/CISupport/ews-build/factories.py	2022-04-06 22:10:14 UTC (rev 292509)
@@ -27,7 +27,7 @@
 from steps import (AddAuthorToCommitMessage, AddReviewerToCommitMessage, AddReviewerToChangeLog, ApplyPatch, ApplyWatchList, Canonicalize,
                    CheckOutPullRequest, CheckOutSource, CheckOutSpecificRevision, CheckChangeRelevance,
                    CheckPatchStatusOnEWSQueues, CheckStyle, CleanGitRepo, CompileJSC, CompileWebKit, ConfigureBuild, CreateLocalGITCommit,
-                   DownloadBuiltProduct, ExtractBuiltProduct, FetchBranches, FindModifiedChangeLogs, FindModifiedLayoutTests,
+                   DownloadBuiltProduct, ExtractBuiltProduct, FetchBranches, FindModifiedChangeLogs, FindModifiedLayoutTests, GitSvnFetch,
                    InstallGtkDependencies, InstallWpeDependencies, KillOldProcesses, PrintConfiguration, PushCommitToWebKitRepo, PushPullRequestBranch,
                    RunAPITests, RunBindingsTests, RunBuildWebKitOrgUnitTests, RunBuildbotCheckConfigForBuildWebKit, RunBuildbotCheckConfigForEWS,
                    RunEWSUnitTests, RunResultsdbpyTests, RunJavaScriptCoreTests, RunWebKit1Tests, RunWebKitPerlTests, RunWebKitPyPython2Tests,
@@ -326,6 +326,7 @@
         self.addStep(PrintConfiguration())
         self.addStep(CleanGitRepo())
         self.addStep(CheckOutSource())
+        self.addStep(GitSvnFetch())  # FIXME: Remove when migrating to pure git
         self.addStep(FetchBranches())
         self.addStep(ShowIdentifier())
         self.addStep(VerifyGitHubIntegrity())

Modified: trunk/Tools/CISupport/ews-build/factories_unittest.py (292508 => 292509)


--- trunk/Tools/CISupport/ews-build/factories_unittest.py	2022-04-06 21:57:52 UTC (rev 292508)
+++ trunk/Tools/CISupport/ews-build/factories_unittest.py	2022-04-06 22:10:14 UTC (rev 292509)
@@ -633,6 +633,7 @@
             'configuration',
             'clean-up-git-repo',
             'clean-and-update-working-directory',
+            'git-svn-fetch',
             'fetch-branch-references',
             'show-identifier',
             'verify-github-integrity',

Modified: trunk/Tools/CISupport/ews-build/steps.py (292508 => 292509)


--- trunk/Tools/CISupport/ews-build/steps.py	2022-04-06 21:57:52 UTC (rev 292508)
+++ trunk/Tools/CISupport/ews-build/steps.py	2022-04-06 22:10:14 UTC (rev 292509)
@@ -5056,3 +5056,20 @@
 
     def hideStepIf(self, results, step):
         return not self.doStepIf(step)
+
+
+class GitSvnFetch(shell.ShellCommand):
+    name = 'git-svn-fetch'
+    haltOnFailure = False
+    flunkOnFailure = False
+    command = ['git', 'svn', 'fetch']
+
+    def __init__(self, **kwargs):
+        super(GitSvnFetch, self).__init__(logEnviron=False, timeout=600, **kwargs)
+
+    def getResultSummary(self):
+        if self.results == SUCCESS:
+            return {'step': 'Paired recent SVN commits with GitHub record'}
+        if self.results == FAILURE:
+            return {'step': 'Recent SVN commits did not match GitHub record'}
+        return super(GitSvnFetch, self).getResultSummary()

Modified: trunk/Tools/CISupport/ews-build/steps_unittest.py (292508 => 292509)


--- trunk/Tools/CISupport/ews-build/steps_unittest.py	2022-04-06 21:57:52 UTC (rev 292508)
+++ trunk/Tools/CISupport/ews-build/steps_unittest.py	2022-04-06 22:10:14 UTC (rev 292509)
@@ -48,7 +48,7 @@
                    CleanBuild, CleanUpGitIndexLock, CleanGitRepo, CleanWorkingDirectory, CompileJSC, CompileJSCWithoutChange,
                    CompileWebKit, CompileWebKitWithoutChange, ConfigureBuild, ConfigureBuild, Contributors, CreateLocalGITCommit,
                    DownloadBuiltProduct, DownloadBuiltProductFromMaster, EWS_BUILD_HOSTNAME, ExtractBuiltProduct, ExtractTestResults,
-                   FetchBranches, FindModifiedChangeLogs, FindModifiedLayoutTests, GitHub, GitResetHard,
+                   FetchBranches, FindModifiedChangeLogs, FindModifiedLayoutTests, GitHub, GitResetHard, GitSvnFetch,
                    InstallBuiltProduct, InstallGtkDependencies, InstallWpeDependencies,
                    KillOldProcesses, PrintConfiguration, PushCommitToWebKitRepo, PushPullRequestBranch, ReRunAPITests, ReRunWebKitPerlTests,
                    ReRunWebKitTests, RevertPullRequestChanges, RunAPITests, RunAPITestsWithoutChange, RunBindingsTests, RunBuildWebKitOrgUnitTests,
@@ -6349,5 +6349,40 @@
             return rc
 
 
+class TestGitSvnFetch(BuildStepMixinAdditions, unittest.TestCase):
+    def setUp(self):
+        self.longMessage = True
+        return self.setUpBuildStep()
+
+    def tearDown(self):
+        return self.tearDownBuildStep()
+
+    def test_success(self):
+        self.setupStep(GitSvnFetch())
+        self.expectRemoteCommands(
+            ExpectShell(workdir='wkdir',
+                        logEnviron=False,
+                        timeout=600,
+                        command=['git', 'svn', 'fetch'])
+            + 0
+            + ExpectShell.log('stdio', stdout=''),
+        )
+        self.expectOutcome(result=SUCCESS, state_string='Paired recent SVN commits with GitHub record')
+        return self.runStep()
+
+    def test_failure(self):
+        self.setupStep(GitSvnFetch())
+        self.expectRemoteCommands(
+            ExpectShell(workdir='wkdir',
+                        logEnviron=False,
+                        timeout=600,
+                        command=['git', 'svn', 'fetch'])
+            + 1
+            + ExpectShell.log('stdio', stdout=''),
+        )
+        self.expectOutcome(result=FAILURE, state_string='Recent SVN commits did not match GitHub record')
+        return self.runStep()
+
+
 if __name__ == '__main__':
     unittest.main()

Modified: trunk/Tools/ChangeLog (292508 => 292509)


--- trunk/Tools/ChangeLog	2022-04-06 21:57:52 UTC (rev 292508)
+++ trunk/Tools/ChangeLog	2022-04-06 22:10:14 UTC (rev 292509)
@@ -1,3 +1,24 @@
+2022-04-04  Jonathan Bedard  <jbed...@apple.com>
+
+        [Merge-Queue] Run `git svn fetch`
+        https://bugs.webkit.org/show_bug.cgi?id=238759
+        <rdar://problem/91258277>
+
+        Reviewed by Aakash Jain.
+
+        * CISupport/ews-build/factories.py:
+        (MergeQueueFactory.__init__): Add GitSvnFetch step.
+        * CISupport/ews-build/factories_unittest.py:
+        (TestExpectedBuildSteps): Ditto.
+        * CISupport/ews-build/steps.py:
+        (UpdatePullRequest.hideStepIf):
+        (GitSvnFetch):
+        (GitSvnFetch.__init__): `git svn fetch` will have a non-zero exit code if the Subversion
+        record of changes does not match the git one, which will happen imiediately after committing.
+        (GitSvnFetch.getResultSummary):
+        (GitSvnFetch.evaluateCommand): Support expected failure.
+        * CISupport/ews-build/steps_unittest.py:
+
 2022-04-06  J Pascoe  <j_pas...@apple.com>
 
         Fix expected, actual links for variant-based imported wpt tests
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to