Run
info
A tasks defined under the run: directive is refered to as run task
The run: directive let's you define local development environments consisting of one or multiple binaries and compose files.
build:
build:
inputs: |-
main1.go
cmd: |-
go build -o app
target: app
run:
app:
path: app
dependsOn:
- build
A run tasks can be started using bob run taskname. In this case it's
bob run app
This will launch a terminal ui similar to this.

TABswitch between logs and statusESCfollow outputctrl-rrebuild if necessary and restart.ctrl-sswitch between scrolling and copy text mode.ctrl+cshutdown.
Types
By default a run task assumes a binary to be executed. Though, it also accepts a compose file as input.
run:
run:
type: compose
This will search for a docker-compose.yaml in the same dir as your bob.yaml is located.
The path keyword can be used to point to the correct location of the compose file
run:
run:
type: compose
path: dir/docker-compose.yaml
Combine Run- and Build-Tasks
Tasks can depend on other run tasks. This is useful if your binarys require run time dependecies like databases defined in compose files.
build:
build:
inputs: |-
main1.go
cmd: |-
go build -o app
target: app
run:
app:
path: app
dependsOn:
- build
- database
database:
type: compose
Bob takes care of building, starting and shutting down everything together. No more scripts needed to run a local development environment.