run method

Future<void> run(
  1. List<String> args
)

Entry point. Builds the PipelineContext via createContext, then runs beforeBuild → body → afterBuild.

Implementation

Future<void> run(List<String> args) async {
  context = createContext(args);
  // Apply CLI flags — create terminal logger with requested settings.
  final logger = Logger.terminal(
    noColor: context.args.has('--no-color'),
    isVerbose: context.args.has('--verbose'),
  );
  context.logger = logger;
  // Inject logger into default git manager singleton.
  if (context.git is GitManagerImpl) {
    (context.git as GitManagerImpl).logger = logger;
  }
  try {
    await beforeBuild();
    await body();
  } finally {
    try {
      await afterBuild();
    } catch (e) {
      context.logger.error('afterBuild failed');
    }
    _printSummary();
  }
}