-
-
Couldn't load subscription status.
- Fork 749
Open
Labels
state: needs triageWaiting to be triaged by a maintainer.Waiting to be triaged by a maintainer.
Description
Description
Given the following tasks:
provision:
desc: "Bring up some dependencies and write the result to .env file"
...
build:
desc: "Build the service binaries"
sources:
- '**/*.go'
- 'go.mod'
- 'go.sum'
generates:
- './out/bin/server'
- './out/bin/client'
cmds:
- task: provision
- go build -o ./out/bin/ ./cmd/...
method: timestamp
run:
desc: "Run the services"
dotenv: ['.env']
deps: [run:server, run:client]
watch: true
sources:
# do not include .env as it is auto-generated by the provision task
- exclude: '.env'
- '*.sql'
method: none
run:server:
deps: [build]
cmd: ./out/bin/server
run:client:
deps: [build]
cmd: ./out/bin/clientRunning task run -v seems to yield a deadlock of some kind, where we have:
task: "provision" finished
task: [build] go build -o ./out/bin/ ./cmd/...
task: received watch event: WRITE "/Users/myself/Projects/myproject/.env"
task: [run:server] ./out/bin/server
task: skipped for file not in sources: .env
However, running task run:server works just fine.
It seems that, for some reason, having watch turned on makes the run:server step not wait for the build step any longer, so the build doesn't even get to finish, but it tries to run the binary which has not yet been created.
Haven't been able to figure out why this behavior happens though.
Version
3.45.4
Operating system
MacOS 15.7.1
Experiments Enabled
No response
Example Taskfile
Metadata
Metadata
Assignees
Labels
state: needs triageWaiting to be triaged by a maintainer.Waiting to be triaged by a maintainer.