build method
Build the flutter binaries for the platform given in buildCmd.
Implementation
Future<String?> build({required String buildCmd}) async {
_logger.fine('Prepare artifact folder: $releaseFolder');
await Directory(releaseFolder).create(recursive: true);
var buildName =
'${buildVersion.major}.${buildVersion.minor}.${buildVersion.patch}';
if (buildVersion.preRelease.isNotEmpty) {
buildName +=
'-${buildVersion.preRelease.map((p) => p.toString()).join('.')}';
}
String? buildNumber;
if (buildVersion.build.isNotEmpty) {
buildNumber = buildVersion.build.map((p) => p.toString()).join('.');
}
final result = await runAsyncProcess(
flutterSdkPath,
[
'build',
buildCmd,
'--build-name',
buildName,
if (buildNumber != null) ...[
'--build-number',
buildNumber,
],
...buildArgs,
if (mainPath != null) ...[
'-t',
mainPath!,
],
if (flavor != null) ...[
'--flavor',
flavor!,
],
],
printCall: true,
// Must run in shell to correctly resolve paths on Windows
runInShell: true,
);
final filePath = parseFlutterBuildResult(result.stdout);
_logger.info('Flutter output: $filePath');
return filePath;
}