build method
LogStream<void>
build({
- required String tag,
- required BuildSource source,
- List<
DockerSecret> credentials = const [],
Implementation
LogStream<void> build({required String tag, required BuildSource source, List<DockerSecret> credentials = const []}) {
final requestId = Uuid().v4().toString();
final controller = StreamController<String>();
final progress = StreamController<LogProgress>();
final completer = Completer();
final stream = LogStream._(completer, controller.stream, progress.stream, () async {
await room.sendRequest('containers.stop_build', {'request_id': requestId});
});
_loggers[requestId] = controller;
_progress[requestId] = progress;
final req = _BuildRequest(
tag: tag,
requestId: requestId,
git: source is BuildSourceGit ? source : null,
room: source is BuildSourceRoom ? source : null,
context: source is BuildSourceContext ? source : null,
credentials: credentials,
);
room
.sendRequest("containers.build", req.toJson(), data: source is BuildSourceContext ? source.context : null)
.then(
(_) {
controller.close();
completer.complete();
_loggers.remove(requestId);
},
onError: (error) {
completer.completeError(error);
_loggers.remove(requestId);
},
);
return stream;
}