diff --git a/dev/conductor/core/lib/src/git.dart b/dev/conductor/core/lib/src/git.dart index 2c4c4042dc..baa78860ae 100644 --- a/dev/conductor/core/lib/src/git.dart +++ b/dev/conductor/core/lib/src/git.dart @@ -33,7 +33,7 @@ class Git { _reportFailureAndExit(args, workingDirectory, result, explanation); } - Future run( + Future run( List args, String explanation, { bool allowNonZeroExitCode = false, @@ -48,7 +48,7 @@ class Git { if (result.exitCode != 0 && !allowNonZeroExitCode) { _reportFailureAndExit(args, workingDirectory, result, explanation); } - return result; + return result.exitCode; } Future _run(List args, String workingDirectory) async { diff --git a/dev/conductor/core/lib/src/packages_autoroller.dart b/dev/conductor/core/lib/src/packages_autoroller.dart index ca3f67f01e..c7535372f8 100644 --- a/dev/conductor/core/lib/src/packages_autoroller.dart +++ b/dev/conductor/core/lib/src/packages_autoroller.dart @@ -140,7 +140,7 @@ This PR was generated by the automated } Future _regenerateGradleLockfiles(Directory repoRoot) async { - await framework.streamDart([ + await framework.runDart([ '${repoRoot.path}/dev/tools/bin/generate_gradle_lockfiles.dart', '--no-gradle-generation', '--no-exclusion', @@ -149,10 +149,8 @@ This PR was generated by the automated // If the git checkout is clean, we did not update any lockfiles and we do // not need an additional commit. case NoDiff(): - stdio.printTrace('No diff after calling generate_gradle_lockfiles.dart'); return; case OnlyLockfileChanges(): - stdio.printTrace('Committing Gradle lockfile changes...'); await framework.commit( 'Re-generate Gradle lockfiles', addFirst: true, diff --git a/dev/conductor/core/lib/src/repository.dart b/dev/conductor/core/lib/src/repository.dart index 7a2f20bf79..a9dcb1cb67 100644 --- a/dev/conductor/core/lib/src/repository.dart +++ b/dev/conductor/core/lib/src/repository.dart @@ -380,7 +380,7 @@ abstract class Repository { /// Determines if one ref is an ancestor for another. Future isAncestor(String possibleAncestor, String possibleDescendant) async { - final io.ProcessResult result = await git.run( + final int exitcode = await git.run( [ 'merge-base', '--is-ancestor', @@ -391,18 +391,18 @@ abstract class Repository { allowNonZeroExitCode: true, workingDirectory: (await checkoutDirectory).path, ); - return result.exitCode == 0; + return exitcode == 0; } /// Determines if a given commit has a tag. Future isCommitTagged(String commit) async { - final io.ProcessResult result = await git.run( + final int exitcode = await git.run( ['describe', '--exact-match', '--tags', commit], 'verify $commit is already tagged', allowNonZeroExitCode: true, workingDirectory: (await checkoutDirectory).path, ); - return result.exitCode == 0; + return exitcode == 0; } /// Resets repository HEAD to [ref]. @@ -480,27 +480,16 @@ abstract class Repository { } authorArg = '--author="$author"'; } - final List commitCmd = [ - 'commit', - '--message', - message, - if (authorArg != null) authorArg, - ]; - stdio.printTrace('Executing git $commitCmd...'); - final io.ProcessResult commitResult = await git.run( - commitCmd, + await git.run( + [ + 'commit', + '--message', + message, + if (authorArg != null) authorArg, + ], 'commit changes', workingDirectory: (await checkoutDirectory).path, ); - final String stdout = commitResult.stdout as String; - if (stdout.isNotEmpty) { - stdio.printTrace(stdout); - } - final String stderr = commitResult.stderr as String; - if (stderr.isNotEmpty) { - stdio.printTrace(stderr); - } - return reverseParse('HEAD'); } @@ -619,6 +608,13 @@ class FrameworkRepository extends Repository { ]); } + Future runDart(List args) async { + return processManager.run([ + fileSystem.path.join((await checkoutDirectory).path, 'bin', 'dart'), + ...args, + ]); + } + Future runFlutter(List args) async { await _ensureToolReady(); return processManager.run([ @@ -627,27 +623,16 @@ class FrameworkRepository extends Repository { ]); } - Future streamDart(List args) async => _streamProcess([ - fileSystem.path.join((await checkoutDirectory).path, 'bin', 'dart'), - ...args, - ]); - Future streamFlutter( List args, { void Function(String)? stdoutCallback, void Function(String)? stderrCallback, - }) async => _streamProcess([ - fileSystem.path.join((await checkoutDirectory).path, 'bin', 'flutter'), - ...args, - ]); - - Future _streamProcess( - List cmd, { - void Function(String)? stdoutCallback, - void Function(String)? stderrCallback, }) async { - stdio.printTrace('Executing $cmd...'); - final io.Process process = await processManager.start(cmd); + await _ensureToolReady(); + final io.Process process = await processManager.start([ + fileSystem.path.join((await checkoutDirectory).path, 'bin', 'flutter'), + ...args, + ]); process .stdout .transform(utf8.decoder) @@ -658,15 +643,6 @@ class FrameworkRepository extends Repository { .transform(utf8.decoder) .transform(const LineSplitter()) .listen(stderrCallback ?? stdio.printError); - final int exitCode = await process.exitCode; - if (exitCode != 0) { - throw io.ProcessException( - cmd.first, - cmd.sublist(1), - 'Process failed', - exitCode, - ); - } return process; } diff --git a/dev/conductor/core/test/packages_autoroller_test.dart b/dev/conductor/core/test/packages_autoroller_test.dart index 0379137122..0bd2d54f41 100644 --- a/dev/conductor/core/test/packages_autoroller_test.dart +++ b/dev/conductor/core/test/packages_autoroller_test.dart @@ -293,6 +293,10 @@ void main() { '-b', 'packages-autoroller-branch-1', ]), + const FakeCommand(command: [ + '$checkoutsParentDirectory/flutter_conductor_checkouts/framework/bin/flutter', + 'help', + ]), const FakeCommand(command: [ '$checkoutsParentDirectory/flutter_conductor_checkouts/framework/bin/flutter', '--verbose', @@ -385,6 +389,10 @@ void main() { '-b', 'packages-autoroller-branch-1', ]), + const FakeCommand(command: [ + '$checkoutsParentDirectory/flutter_conductor_checkouts/framework/bin/flutter', + 'help', + ]), const FakeCommand(command: [ '$checkoutsParentDirectory/flutter_conductor_checkouts/framework/bin/flutter', '--verbose',