publish method
Future<void>
publish(
)
override
Implementation
@override
Future<void> publish() async {
_logger.info('Build application...');
final outputPath = await platformBuild.build();
_logger.info('Build artifact path: $outputPath');
final outputFile = File(outputPath);
// Create tmp folder
await runProcess('mkdir', ['-p', tmpFolder]);
try {
// Ensure files are at the correct path.
await runProcess(
'tar',
[
'-xzf',
outputFile.absolute.path,
'-C',
tmpFolder,
],
);
await serverConnection.upload(
// Must have a trailing slash to move folder contents only
sourcePath: '$tmpFolder/web/',
webServerPath: webServerPath,
isDryRun: flutterPublish.isDryRun,
);
} catch (_) {
rethrow;
} finally {
// Remove tmp folder
await runProcess('rm', ['-r', tmpFolder]);
await serverConnection.dispose();
}
}