Describe the feature you'd like to request
In our monorepo, we have multiple services that to some degree depend on each other. For local development, we have to start a mock service first, then a second one, and then all others in any order.
For local development and testing, it would be great, to be able to start all these services or only one service and it's dependencies via turborepo in one step.
Describe the solution you'd like
It would be cool if turbo can be configured to not wait for a process to exit, but for some string or regexp to appear on stdout|stderr and put all processes into background until Turbo itself is terminated via Ctrl+C.
We could then just configure our server tasks like this:
"mock-service#server": {
"dependsOn": ["build"],
"longRunning": {
"waitFor": {
"stdout": "Service started successfully"
"timeout": "60s"
},
},
"cache": false
},
"my-service#server": {
"dependsOn": ["build", "mock-service#server"],
"longRunning": true,
"cache": false
},
For dependencies, it would be needed to be able to specify an explicit package, as runtime dependencies do not necessarily match build time dependencies. I'm not sure if this is already possble, but at least it's not documented.
A leaf task should not need to configure a waiting condition, but having them for all background tasks would make it possible to output some informative message that all background tasks had a successful startup and now everything is up and running.
If a dependency is detected on a task that has longRunning: true, turbo could fail to run because of misconfiguration.
Nice-to-have on top:
- Being able to configure what should happen with console output of these background services (showing them, hiding them, only showing stderr)
- having a repl to give runtime hints to turbo after all processes are in background, like
/hide mock-service#server, /grep ERROR
Describe alternatives you've considered
Create a command line tool that starts a process, puts it in background and exits by itself when some message appears on stdout or stderr. I'm not sure if it's possible then to stop that background processes if the turbo command is interrupted via Ctrl+C.
Describe the feature you'd like to request
In our monorepo, we have multiple services that to some degree depend on each other. For local development, we have to start a mock service first, then a second one, and then all others in any order.
For local development and testing, it would be great, to be able to start all these services or only one service and it's dependencies via turborepo in one step.
Describe the solution you'd like
It would be cool if turbo can be configured to not wait for a process to exit, but for some string or regexp to appear on stdout|stderr and put all processes into background until Turbo itself is terminated via Ctrl+C.
We could then just configure our
servertasks like this:For dependencies, it would be needed to be able to specify an explicit package, as runtime dependencies do not necessarily match build time dependencies. I'm not sure if this is already possble, but at least it's not documented.
A leaf task should not need to configure a waiting condition, but having them for all background tasks would make it possible to output some informative message that all background tasks had a successful startup and now everything is up and running.
If a dependency is detected on a task that has
longRunning: true, turbo could fail to run because of misconfiguration.Nice-to-have on top:
/hide mock-service#server,/grep ERRORDescribe alternatives you've considered
Create a command line tool that starts a process, puts it in background and exits by itself when some message appears on stdout or stderr. I'm not sure if it's possible then to stop that background processes if the turbo command is interrupted via Ctrl+C.