createBuild static method
Implementation
static Future<String?> createBuild({
required final int buildNumber,
required final String buildOptions,
final String? buildName,
}) async {
stdout.writeln(
'Starting flutter build for '
'${buildName != null ? '$buildName+' : ''}'
'${buildNumber + 1}...',
);
String? buildLocation;
final process = await Process.start(
'flutter',
[
'build',
'appbundle',
if (buildName != null) '--build-name=$buildName',
'--build-number=${buildNumber + 1}',
...buildOptions.split(' '),
],
);
process.stdout
.transform(const SystemEncoding().decoder)
.listen((final data) {
stdout.write(data);
final match = RegExp(r' ([\w/.-]+\.aab)').firstMatch(data)?.group(1);
if (match != null) {
buildLocation = match;
}
});
process.stderr
.transform(const SystemEncoding().decoder)
.listen((final data) => stdout.write(data));
final exitCode = await process.exitCode;
if (exitCode != 0) {
exit(1);
}
if (buildLocation == null) {
stderr.writeln('Build location not found.');
exit(1);
}
return buildLocation;
}