performLaunch static method
Future<void>
performLaunch(
- Client cloudApiClient,
- FileUploaderFactory fileUploaderFactory,
- CommandLogger logger,
- ProjectLaunch projectSetup,
Implementation
static Future<void> performLaunch(
final Client cloudApiClient,
final FileUploaderFactory fileUploaderFactory,
final CommandLogger logger,
final ProjectLaunch projectSetup,
) async {
logger.info('Launching project...');
final projectId = projectSetup.projectId!;
final projectDir = projectSetup.projectDir!;
final enableDb = projectSetup.enableDb!;
final performDeploy = projectSetup.performDeploy!;
await ProjectCommands.createProject(
cloudApiClient,
logger: logger,
projectId: projectId,
enableDb: enableDb,
projectDir: projectDir,
configFilePath: p.join(
projectDir,
ProjectConfigFileConstants.defaultFileName,
),
);
if (!performDeploy) {
logger.terminalCommand(
'scloud deploy -d $projectDir $projectId',
message: 'Run this command to deploy the project to the cloud:',
);
return;
}
await Deploy.deploy(
cloudApiClient,
fileUploaderFactory,
logger: logger,
projectId: projectId,
projectDir: projectDir,
concurrency: 5,
dryRun: false,
);
logger.info(' '); // blank line
String? attemptId;
do {
try {
attemptId = await StatusFeature.getDeployAttemptId(
cloudApiClient,
cloudCapsuleId: projectId,
attemptNumber: 0,
);
} on NotFoundException catch (_) {
logger.debug('Waiting for deployment status...');
await Future.delayed(const Duration(seconds: 5));
}
} while (attemptId == null);
await StatusCommands.showDeploymentStatus(
cloudApiClient,
logger: logger,
cloudCapsuleId: projectId,
attemptId: attemptId,
);
logger.terminalCommand(
'scloud status deploy -p $projectId',
message: 'Run this command to see the current deployment status:',
);
}