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