Skip to content

Commit c61c9f8

Browse files
committed
pr feedback
1 parent 4f18c9c commit c61c9f8

File tree

1 file changed

+18
-1
lines changed
  • src/model/cloud-runner/remote-client

1 file changed

+18
-1
lines changed

src/model/cloud-runner/remote-client/index.ts

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ export class RemoteClient {
3131
const logFile = Cli.options!['logFile'];
3232
process.stdin.resume();
3333
process.stdin.setEncoding('utf8');
34+
35+
// For K8s, ensure stdout is unbuffered so messages are captured immediately
36+
if (CloudRunnerOptions.providerStrategy === 'k8s') {
37+
process.stdout.setDefaultEncoding('utf8');
38+
}
3439

3540
let lingeringLine = '';
3641

@@ -44,8 +49,12 @@ export class RemoteClient {
4449
// For K8s, write to both log file and stdout so kubectl logs can capture it
4550
if (CloudRunnerOptions.providerStrategy === 'k8s') {
4651
fs.appendFileSync(logFile, element);
47-
// Write to stdout so kubectl logs can capture it
52+
// Write to stdout so kubectl logs can capture it - ensure newline is included
4853
process.stdout.write(`${element}\n`);
54+
// Force flush if possible
55+
if (typeof process.stdout.flush === 'function') {
56+
process.stdout.flush();
57+
}
4958
CloudRunnerLogger.log(element);
5059
} else {
5160
CloudRunnerLogger.log(element);
@@ -58,6 +67,9 @@ export class RemoteClient {
5867
if (lingeringLine) {
5968
fs.appendFileSync(logFile, lingeringLine);
6069
process.stdout.write(`${lingeringLine}\n`);
70+
if (typeof process.stdout.flush === 'function') {
71+
process.stdout.flush();
72+
}
6173
}
6274
CloudRunnerLogger.log(lingeringLine);
6375
} else {
@@ -133,9 +145,14 @@ export class RemoteClient {
133145

134146
// Ensure success marker is present in logs for tests
135147
// For K8s, kubectl logs reads from stdout/stderr, so we must write to stdout
148+
// Also ensure it's flushed immediately
136149
const successMessage = `Activation successful`;
137150
// Write to stdout first so kubectl logs can capture it
138151
process.stdout.write(`${successMessage}\n`);
152+
// Force flush stdout to ensure it's captured
153+
if (process.stdout.isTTY === false) {
154+
process.stdout.write(''); // Trigger flush
155+
}
139156
// Also log via CloudRunnerLogger for GitHub Actions
140157
CloudRunnerLogger.log(successMessage);
141158

0 commit comments

Comments
 (0)