run method
Runs this command.
The return value is wrapped in a Future if necessary and returned by
CommandRunner.runCommand.
Implementation
@override
Future<void> run() async {
final results = argResults!;
final firebaseAppId = results['firebaseAppId'] as String;
final serviceAccount = results['serviceAccount'] as String;
final storePassword = results['storePassword'] as String;
final keyPassword = results['keyPassword'] as String;
final keyAlias = results['keyAlias'] as String;
final storeFile = results['storeFile'] as String;
final testerGroups = results['testerGroups'] as String;
final buildOptions = results['buildOptions'] as String;
await AndroidUtil.configureSigning(
storePassword: storePassword,
keyPassword: keyPassword,
keyAlias: keyAlias,
storeFile: storeFile,
);
final firebaseAppDistributionUtil = FirebaseAppDistributionUtil(
serviceAccount: serviceAccount,
appId: firebaseAppId,
);
final authClient = await firebaseAppDistributionUtil.initializeAuthClient();
final release =
await firebaseAppDistributionUtil.latestRelease(authClient: authClient);
final buildNumber = release.buildNumber;
final newBuildPath = await AndroidUtil.createBuild(
buildNumber: buildNumber,
buildOptions: buildOptions,
);
if (newBuildPath != null) {
stdout.writeln(
'Uploading flutter build from $newBuildPath to Firebase App '
'Distribution...',
);
await firebaseAppDistributionUtil.uploadBuild(
authClient: authClient,
filePath: newBuildPath,
testerGroups: testerGroups.split(','),
);
}
}