deploy method
Execute deployment for the specified platform(s) in context.
Implementation
Future<List<DeploymentResult>> deploy(DeploymentContext context) async {
final results = <DeploymentResult>[];
// Check prerequisites first
final validation = await validatePrerequisites(context);
if (validation.isFailed) {
return [
DeploymentResult.failure(
platform: context.platform,
lane: context.lane ?? 'default',
message: 'Deployment pre-flight check failed: ${validation.message}',
errors: [validation.message],
),
];
}
if (context.platform == BuildPlatform.all) {
final androidStrategy = _strategies[BuildPlatform.android];
if (androidStrategy != null) {
results.add(await androidStrategy.deploy(context));
}
final iosStrategy = _strategies[BuildPlatform.ios];
if (iosStrategy != null) {
results.add(await iosStrategy.deploy(context));
}
return results;
}
final strategy = _strategies[context.platform];
if (strategy == null) {
return [
DeploymentResult.failure(
platform: context.platform,
lane: context.lane ?? 'default',
message: 'Unsupported deployment platform: ${context.platform}',
errors: ['No strategy registered for platform ${context.platform}'],
),
];
}
results.add(await strategy.deploy(context));
return results;
}