version: "3" tasks: generate: desc: "Generate protobuf code" cmds: - protoc --go_out=internal/weather/pb --go_opt=paths=source_relative protos/weather.proto build: desc: "Build all binaries" cmds: - task: generate - go build -o bin/publisher ./cmd/publisher - go build -o bin/subscriber ./cmd/subscriber run-publisher: desc: "Run publisher with auto-generation" cmds: - task: generate - go run ./cmd/publisher run-subscriber: desc: "Run subscriber with auto-generation" cmds: - task: generate - go run ./cmd/subscriber watch: desc: "Watch and rebuild on changes" cmds: - task: generate sources: - "**/*.go" - "**/*.proto" generates: - "internal/weather/pb/*.go" method: timestamp