validate method
Implementation
@override
Future<ValidationCheck> validate(ReleaseContext context) async {
// 1. Flutter CLI
final flutterResult = await _runner.run('flutter', ['--version']);
if (flutterResult.exitCode != 0) {
return ValidationCheck(
name: name,
status: CheckStatus.failed,
message: 'Flutter SDK CLI not found on PATH.',
);
}
// 2. Git CLI
final gitResult = await _runner.run('git', ['--version']);
if (gitResult.exitCode != 0) {
return ValidationCheck(
name: name,
status: CheckStatus.warning,
message: 'Git CLI not found on PATH.',
);
}
// 3. Shorebird CLI (if release mode requires Shorebird)
if (context.type == ReleaseType.shorebirdRelease ||
context.type == ReleaseType.shorebirdPatch) {
final shorebirdResult = await _runner.run('shorebird', ['--version']);
if (shorebirdResult.exitCode != 0) {
return ValidationCheck(
name: name,
status: CheckStatus.failed,
message:
'Shorebird CLI not found on PATH. Install Shorebird before running Shorebird commands.',
);
}
}
return ValidationCheck(
name: name,
status: CheckStatus.passed,
message: 'Required tools available',
);
}