From 0284a8c18bf8701f2681e2612861988c39175e1b Mon Sep 17 00:00:00 2001 From: Jonathan Bedard Date: Wed, 7 Dec 2022 11:57:02 -0800 Subject: [PATCH] [ews-build.webkit.org] Aggressively prune when cleaning https://bugs.webkit.org/show_bug.cgi?id=248895 rdar://103082277 Reviewed by Ryan Haddad. * Tools/CISupport/ews-build/steps.py: (CleanGitRepo.run): Delete .git/gc.log and run `git prune`. * Tools/CISupport/ews-build/steps_unittest.py: Canonical link: https://commits.webkit.org/257496@main --- Tools/CISupport/ews-build/steps.py | 12 ++++++++++++ Tools/CISupport/ews-build/steps_unittest.py | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/Tools/CISupport/ews-build/steps.py b/Tools/CISupport/ews-build/steps.py index 344da1b081f3..72e91f51d0c3 100644 --- a/Tools/CISupport/ews-build/steps.py +++ b/Tools/CISupport/ews-build/steps.py @@ -4662,6 +4662,17 @@ def __init__(self, default_branch=DEFAULT_BRANCH, remote=DEFAULT_REMOTE, **kwarg def run(self): self.commands = [] + if self.getProperty('platform', '*') == 'wincairo': + self.commands.append(util.ShellArg( + command=self.shell_command(r'del .git\gc.log || {}'.format(self.shell_exit_0())), + logname='stdio', + )) + else: + self.commands.append(util.ShellArg( + command=self.shell_command('rm -f .git/gc.log || {}'.format(self.shell_exit_0())), + logname='stdio', + )) + for command in [ self.shell_command('git rebase --abort || {}'.format(self.shell_exit_0())), self.shell_command('git am --abort || {}'.format(self.shell_exit_0())), @@ -4672,6 +4683,7 @@ def run(self): ['git', 'checkout', '-b', '{}'.format(self.default_branch)], # Checkout local instance of branch from remote self.shell_command('git branch | grep -v {} | xargs git branch -D || {}'.format(self.default_branch, self.shell_exit_0())), self.shell_command('git remote | grep -v {} | xargs -L 1 git remote rm || {}'.format(self.git_remote, self.shell_exit_0())), + ['git', 'prune'], ]: self.commands.append(util.ShellArg(command=command, logname='stdio')) return super(CleanGitRepo, self).run() diff --git a/Tools/CISupport/ews-build/steps_unittest.py b/Tools/CISupport/ews-build/steps_unittest.py index 4accdc0d96c0..ae48922f4684 100644 --- a/Tools/CISupport/ews-build/steps_unittest.py +++ b/Tools/CISupport/ews-build/steps_unittest.py @@ -5001,6 +5001,8 @@ def test_success(self): self.setProperty('buildername', 'Style-EWS') self.expectRemoteCommands( + ExpectShell(command=['/bin/sh', '-c', 'rm -f .git/gc.log || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git rebase --abort || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git am --abort || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 @@ -5019,6 +5021,8 @@ def test_success(self): + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git remote | grep -v origin | xargs -L 1 git remote rm || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), + ExpectShell(command=['git', 'prune'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ) self.expectOutcome(result=SUCCESS, state_string='Cleaned up git repository') return self.runStep() @@ -5029,6 +5033,8 @@ def test_success_wincairo(self): self.setProperty('platform', 'wincairo') self.expectRemoteCommands( + ExpectShell(command=['sh', '-c', r'del .git\gc.log || exit 0'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['sh', '-c', 'git rebase --abort || exit 0'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['sh', '-c', 'git am --abort || exit 0'], workdir='wkdir', timeout=300, logEnviron=False) + 0 @@ -5047,6 +5053,8 @@ def test_success_wincairo(self): + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['sh', '-c', 'git remote | grep -v origin | xargs -L 1 git remote rm || exit 0'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), + ExpectShell(command=['git', 'prune'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ) self.expectOutcome(result=SUCCESS, state_string='Cleaned up git repository') return self.runStep() @@ -5056,6 +5064,8 @@ def test_success_master(self): self.setProperty('buildername', 'Commit-Queue') self.expectRemoteCommands( + ExpectShell(command=['/bin/sh', '-c', 'rm -f .git/gc.log || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git rebase --abort || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git am --abort || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 @@ -5074,6 +5084,8 @@ def test_success_master(self): + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git remote | grep -v origin | xargs -L 1 git remote rm || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), + ExpectShell(command=['git', 'prune'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ) self.expectOutcome(result=SUCCESS, state_string='Cleaned up git repository') return self.runStep() @@ -5083,6 +5095,8 @@ def test_failure(self): self.setProperty('buildername', 'Commit-Queue') self.expectRemoteCommands( + ExpectShell(command=['/bin/sh', '-c', 'rm -f .git/gc.log || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git rebase --abort || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git am --abort || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 @@ -5101,6 +5115,8 @@ def test_failure(self): + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git remote | grep -v origin | xargs -L 1 git remote rm || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), + ExpectShell(command=['git', 'prune'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ) self.expectOutcome(result=FAILURE, state_string='Encountered some issues during cleanup') return self.runStep() @@ -5111,6 +5127,8 @@ def test_branch(self): self.setProperty('basename', 'safari-612-branch') self.expectRemoteCommands( + ExpectShell(command=['/bin/sh', '-c', 'rm -f .git/gc.log || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git rebase --abort || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git am --abort || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 @@ -5129,6 +5147,8 @@ def test_branch(self): + ExpectShell.log('stdio', stdout=''), ExpectShell(command=['/bin/sh', '-c', 'git remote | grep -v origin | xargs -L 1 git remote rm || true'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + ExpectShell.log('stdio', stdout=''), + ExpectShell(command=['git', 'prune'], workdir='wkdir', timeout=300, logEnviron=False) + 0 + + ExpectShell.log('stdio', stdout=''), ) self.expectOutcome(result=SUCCESS, state_string='Cleaned up git repository') return self.runStep()