Well this may not exactly be a Go-Cd issue but I'm not exactly sure what happens to STDIN behind the scene. This output basically explains my issue:
In this Ruby version, all output waits until script is over (in my real world example - this is causing my go builds to timeout with unresponsive consoles) - see timetsamps
15:45:46.117 [go] Start to execute task: <exec command="/bin/bash" >
<arg>-c</arg>
<arg>ruby -e '10.times { | x | sleep 10 and puts x }'</arg>
</exec>.
15:47:26.195 0
15:47:26.195 1
15:47:26.195 2
15:47:26.196 3
15:47:26.196 4
15:47:26.197 5
15:47:26.197 6
15:47:26.197 7
15:47:26.197 8
15:47:26.197 9
15:47:26.297 [go] Current job status: passed.
This bash version the output is close to real time as you can see by the timestamps.
15:47:26.297 [go] Start to execute task: <exec command="/bin/bash" >
<arg>-c</arg>
<arg>/bin/bash -c 'for f in {0..9}; do sleep 5s; echo $f; done;'</arg>
</exec>.
15:47:31.304 0
15:47:36.305 1
15:47:41.307 2
15:47:46.309 3
15:47:51.310 4
15:47:56.312 5
15:48:01.314 6
15:48:06.315 7
15:48:11.317 8
15:48:16.319 9
15:48:16.420 [go] Current job status: passed.In my real world example I can delay 30 minutes and nothing appears..
I know Go-Cd has some Ruby code so I thought someone might have a solution?
Thanks
Darren.