diff --git a/_examples/basic/1-your-first-app/.validate_example.yml b/_examples/basic/1-your-first-app/.validate_example.yml index e2cfc657c..a7f453c61 100644 --- a/_examples/basic/1-your-first-app/.validate_example.yml +++ b/_examples/basic/1-your-first-app/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "received event {ID:[0-9]+}" diff --git a/_examples/basic/1-your-first-app/docker-compose.yml b/_examples/basic/1-your-first-app/docker-compose.yml index 25f2c1654..5366dcf17 100644 --- a/_examples/basic/1-your-first-app/docker-compose.yml +++ b/_examples/basic/1-your-first-app/docker-compose.yml @@ -1,33 +1,18 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped - depends_on: - - kafka volumes: - .:/app - $GOPATH/pkg/mod:/go/pkg/mod working_dir: /app command: go run main.go - zookeeper: - image: confluentinc/cp-zookeeper:7.3.1 - logging: - driver: none - restart: unless-stopped - environment: - ZOOKEEPER_CLIENT_PORT: 2181 - kafka: - image: confluentinc/cp-kafka:7.3.1 - logging: - driver: none + image: bitnami/kafka:3.5.0 restart: unless-stopped - depends_on: - - zookeeper environment: - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + ALLOW_PLAINTEXT_LISTENER: yes KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true" diff --git a/_examples/basic/1-your-first-app/main.go b/_examples/basic/1-your-first-app/main.go index 3eb303322..4b17288f4 100644 --- a/_examples/basic/1-your-first-app/main.go +++ b/_examples/basic/1-your-first-app/main.go @@ -3,7 +3,7 @@ package main import ( "context" "encoding/json" - "log" + "fmt" "time" "github.com/ThreeDotsLabs/watermill" @@ -67,7 +67,7 @@ func main() { return nil, err } - log.Printf("received event %+v", consumedPayload) + fmt.Printf("received event %+v\n", consumedPayload) newPayload, err := json.Marshal(processedEvent{ ProcessedID: consumedPayload.ID, diff --git a/_examples/basic/2-realtime-feed/.validate_example_subscribing.yml b/_examples/basic/2-realtime-feed/.validate_example_subscribing.yml index 5ad85bbe4..5c1bdb414 100644 --- a/_examples/basic/2-realtime-feed/.validate_example_subscribing.yml +++ b/_examples/basic/2-realtime-feed/.validate_example_subscribing.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "Adding to feed" diff --git a/_examples/basic/2-realtime-feed/docker-compose.yml b/_examples/basic/2-realtime-feed/docker-compose.yml index d37863c21..6c7ac2dc5 100644 --- a/_examples/basic/2-realtime-feed/docker-compose.yml +++ b/_examples/basic/2-realtime-feed/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: producer: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - kafka @@ -12,7 +11,7 @@ services: command: go run main.go consumer: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - kafka diff --git a/_examples/basic/4-metrics/.validate_example.yml b/_examples/basic/4-metrics/.validate_example.yml index 2fe57038f..c26c27009 100644 --- a/_examples/basic/4-metrics/.validate_example.yml +++ b/_examples/basic/4-metrics/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "msg=\"Message acked\"" diff --git a/_examples/basic/4-metrics/docker-compose.yml b/_examples/basic/4-metrics/docker-compose.yml index be1050be5..7c62346a4 100644 --- a/_examples/basic/4-metrics/docker-compose.yml +++ b/_examples/basic/4-metrics/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: golang: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped ports: - 8080:8080 diff --git a/_examples/basic/5-cqrs-protobuf/.validate_example.yml b/_examples/basic/5-cqrs-protobuf/.validate_example.yml index 544329b75..20dce4535 100644 --- a/_examples/basic/5-cqrs-protobuf/.validate_example.yml +++ b/_examples/basic/5-cqrs-protobuf/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 120 expected_output: "beers ordered to room 3" diff --git a/_examples/basic/5-cqrs-protobuf/docker-compose.yml b/_examples/basic/5-cqrs-protobuf/docker-compose.yml index 1cf2b9a41..f01a2a3e2 100644 --- a/_examples/basic/5-cqrs-protobuf/docker-compose.yml +++ b/_examples/basic/5-cqrs-protobuf/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: golang: - image: golang:1.20 + image: golang:1.23 restart: unless-stopped ports: - 8080:8080 @@ -17,4 +16,4 @@ services: rabbitmq: image: rabbitmq:3.7 - restart: unless-stopped \ No newline at end of file + restart: unless-stopped diff --git a/_examples/pubsubs/amqp/.validate_example.yml b/_examples/pubsubs/amqp/.validate_example.yml index c906d27d7..b60d0b097 100644 --- a/_examples/pubsubs/amqp/.validate_example.yml +++ b/_examples/pubsubs/amqp/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 120 expected_output: "received message: [0-9a-f\\-]+, payload: Hello, world!" diff --git a/_examples/pubsubs/amqp/docker-compose.yml b/_examples/pubsubs/amqp/docker-compose.yml index d4fd73875..5ce5c2939 100644 --- a/_examples/pubsubs/amqp/docker-compose.yml +++ b/_examples/pubsubs/amqp/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - rabbitmq diff --git a/_examples/pubsubs/googlecloud/.validate_example.yml b/_examples/pubsubs/googlecloud/.validate_example.yml index 81a461b64..50c4f5a46 100644 --- a/_examples/pubsubs/googlecloud/.validate_example.yml +++ b/_examples/pubsubs/googlecloud/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "payload: Hello, world!" diff --git a/_examples/pubsubs/googlecloud/docker-compose.yml b/_examples/pubsubs/googlecloud/docker-compose.yml index 4f3cfc5e7..d2b0b7d01 100644 --- a/_examples/pubsubs/googlecloud/docker-compose.yml +++ b/_examples/pubsubs/googlecloud/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - googlecloud diff --git a/_examples/pubsubs/kafka/.validate_example.yml b/_examples/pubsubs/kafka/.validate_example.yml index 81a461b64..50c4f5a46 100644 --- a/_examples/pubsubs/kafka/.validate_example.yml +++ b/_examples/pubsubs/kafka/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "payload: Hello, world!" diff --git a/_examples/pubsubs/kafka/docker-compose.yml b/_examples/pubsubs/kafka/docker-compose.yml index 1a7b15596..5ea3a28fb 100644 --- a/_examples/pubsubs/kafka/docker-compose.yml +++ b/_examples/pubsubs/kafka/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - kafka diff --git a/_examples/pubsubs/nats-core/.validate_example.yml b/_examples/pubsubs/nats-core/.validate_example.yml index 81a461b64..50c4f5a46 100644 --- a/_examples/pubsubs/nats-core/.validate_example.yml +++ b/_examples/pubsubs/nats-core/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "payload: Hello, world!" diff --git a/_examples/pubsubs/nats-core/docker-compose.yml b/_examples/pubsubs/nats-core/docker-compose.yml index 5052b0b4a..e3c6e8201 100644 --- a/_examples/pubsubs/nats-core/docker-compose.yml +++ b/_examples/pubsubs/nats-core/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - nats diff --git a/_examples/pubsubs/nats-jetstream/.validate_example.yml b/_examples/pubsubs/nats-jetstream/.validate_example.yml index 81a461b64..50c4f5a46 100644 --- a/_examples/pubsubs/nats-jetstream/.validate_example.yml +++ b/_examples/pubsubs/nats-jetstream/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "payload: Hello, world!" diff --git a/_examples/pubsubs/nats-jetstream/docker-compose.yml b/_examples/pubsubs/nats-jetstream/docker-compose.yml index 5052b0b4a..e3c6e8201 100644 --- a/_examples/pubsubs/nats-jetstream/docker-compose.yml +++ b/_examples/pubsubs/nats-jetstream/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - nats diff --git a/_examples/pubsubs/nats-streaming/.validate_example.yml b/_examples/pubsubs/nats-streaming/.validate_example.yml index 81a461b64..50c4f5a46 100644 --- a/_examples/pubsubs/nats-streaming/.validate_example.yml +++ b/_examples/pubsubs/nats-streaming/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "payload: Hello, world!" diff --git a/_examples/pubsubs/nats-streaming/docker-compose.yml b/_examples/pubsubs/nats-streaming/docker-compose.yml index 839bad423..be199519f 100644 --- a/_examples/pubsubs/nats-streaming/docker-compose.yml +++ b/_examples/pubsubs/nats-streaming/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - nats-streaming diff --git a/_examples/pubsubs/redisstream/.validate_example.yml b/_examples/pubsubs/redisstream/.validate_example.yml index 81a461b64..50c4f5a46 100644 --- a/_examples/pubsubs/redisstream/.validate_example.yml +++ b/_examples/pubsubs/redisstream/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "payload: Hello, world!" diff --git a/_examples/pubsubs/redisstream/docker-compose.yml b/_examples/pubsubs/redisstream/docker-compose.yml index a981e3ea2..63b9d306d 100644 --- a/_examples/pubsubs/redisstream/docker-compose.yml +++ b/_examples/pubsubs/redisstream/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - redis @@ -15,4 +14,4 @@ services: image: redis:7 ports: - 6379:6379 - restart: unless-stopped \ No newline at end of file + restart: unless-stopped diff --git a/_examples/pubsubs/sql/.validate_example.yml b/_examples/pubsubs/sql/.validate_example.yml index f8e26c5d9..e62f09978 100644 --- a/_examples/pubsubs/sql/.validate_example.yml +++ b/_examples/pubsubs/sql/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "Hello, world!" diff --git a/_examples/pubsubs/sql/docker-compose.yml b/_examples/pubsubs/sql/docker-compose.yml index e504ce32c..25bd746a2 100644 --- a/_examples/pubsubs/sql/docker-compose.yml +++ b/_examples/pubsubs/sql/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.20 + image: golang:1.23 restart: unless-stopped depends_on: - mysql diff --git a/_examples/real-world-examples/consumer-groups/docker-compose.yml b/_examples/real-world-examples/consumer-groups/docker-compose.yml index 19bcbcbd9..506c62ab0 100644 --- a/_examples/real-world-examples/consumer-groups/docker-compose.yml +++ b/_examples/real-world-examples/consumer-groups/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: api: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - redis @@ -13,7 +12,7 @@ services: command: go run . newsletter-1: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - redis @@ -25,7 +24,7 @@ services: REPLICA: 1 newsletter-2: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - redis @@ -37,7 +36,7 @@ services: REPLICA: 2 crm-1: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - redis @@ -49,7 +48,7 @@ services: REPLICA: 1 crm-2: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - redis diff --git a/_examples/real-world-examples/exactly-once-delivery-counter/docker-compose.yml b/_examples/real-world-examples/exactly-once-delivery-counter/docker-compose.yml index 1fe8d9424..941f33131 100644 --- a/_examples/real-world-examples/exactly-once-delivery-counter/docker-compose.yml +++ b/_examples/real-world-examples/exactly-once-delivery-counter/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.20 + image: golang:1.23 restart: unless-stopped ports: - 8080:8080 @@ -12,7 +11,7 @@ services: command: 'go run .' worker: - image: golang:1.20 + image: golang:1.23 restart: unless-stopped volumes: - ./worker:/app diff --git a/_examples/real-world-examples/persistent-event-log/.validate_example.yml b/_examples/real-world-examples/persistent-event-log/.validate_example.yml index ecd5c5462..b93869737 100644 --- a/_examples/real-world-examples/persistent-event-log/.validate_example.yml +++ b/_examples/real-world-examples/persistent-event-log/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "received event" diff --git a/_examples/real-world-examples/persistent-event-log/docker-compose.yml b/_examples/real-world-examples/persistent-event-log/docker-compose.yml index 9d5a2fe9c..56f71290c 100644 --- a/_examples/real-world-examples/persistent-event-log/docker-compose.yml +++ b/_examples/real-world-examples/persistent-event-log/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.20 + image: golang:1.23 restart: unless-stopped depends_on: - mysql diff --git a/_examples/real-world-examples/receiving-webhooks/.validate_example.yml b/_examples/real-world-examples/receiving-webhooks/.validate_example.yml index e274a176a..64053f319 100644 --- a/_examples/real-world-examples/receiving-webhooks/.validate_example.yml +++ b/_examples/real-world-examples/receiving-webhooks/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "Starting handler" diff --git a/_examples/real-world-examples/receiving-webhooks/docker-compose.yml b/_examples/real-world-examples/receiving-webhooks/docker-compose.yml index fe1df0339..6437a46fe 100644 --- a/_examples/real-world-examples/receiving-webhooks/docker-compose.yml +++ b/_examples/real-world-examples/receiving-webhooks/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: golang: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped ports: - 8080:8080 diff --git a/_examples/real-world-examples/sending-webhooks/.validate_example.yml b/_examples/real-world-examples/sending-webhooks/.validate_example.yml index eb05c7031..15cc07543 100644 --- a/_examples/real-world-examples/sending-webhooks/.validate_example.yml +++ b/_examples/real-world-examples/sending-webhooks/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "POST /foo_or_bar: message" diff --git a/_examples/real-world-examples/sending-webhooks/docker-compose.yml b/_examples/real-world-examples/sending-webhooks/docker-compose.yml index 243d487f6..545255d51 100644 --- a/_examples/real-world-examples/sending-webhooks/docker-compose.yml +++ b/_examples/real-world-examples/sending-webhooks/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: webhooks-server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped volumes: - .:/app @@ -10,7 +9,7 @@ services: command: go run main.go router: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - kafka @@ -21,7 +20,7 @@ services: command: go run main.go producer: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - kafka diff --git a/_examples/real-world-examples/server-sent-events-htmx/Dockerfile b/_examples/real-world-examples/server-sent-events-htmx/Dockerfile index f8dc6e99c..5985fdddc 100644 --- a/_examples/real-world-examples/server-sent-events-htmx/Dockerfile +++ b/_examples/real-world-examples/server-sent-events-htmx/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.22 AS builder +FROM golang:1.23 AS builder COPY . /src WORKDIR /src/ diff --git a/_examples/real-world-examples/server-sent-events-htmx/docker-compose.yml b/_examples/real-world-examples/server-sent-events-htmx/docker-compose.yml index 3d4db0203..6f475747c 100644 --- a/_examples/real-world-examples/server-sent-events-htmx/docker-compose.yml +++ b/_examples/real-world-examples/server-sent-events-htmx/docker-compose.yml @@ -1,4 +1,3 @@ -version: '3.7' services: server: build: diff --git a/_examples/real-world-examples/server-sent-events-htmx/docker/Dockerfile b/_examples/real-world-examples/server-sent-events-htmx/docker/Dockerfile index 1c1300aae..89bb479ee 100644 --- a/_examples/real-world-examples/server-sent-events-htmx/docker/Dockerfile +++ b/_examples/real-world-examples/server-sent-events-htmx/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM golang:1.22 +FROM golang:1.23 RUN go install github.com/cespare/reflex@latest RUN go install github.com/a-h/templ/cmd/templ@latest diff --git a/_examples/real-world-examples/server-sent-events/docker-compose.yml b/_examples/real-world-examples/server-sent-events/docker-compose.yml index 896d4c15a..1445c6c61 100644 --- a/_examples/real-world-examples/server-sent-events/docker-compose.yml +++ b/_examples/real-world-examples/server-sent-events/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped ports: - 8080:8080 @@ -31,4 +30,4 @@ services: image: nats-streaming:0.11.2 restart: unless-stopped logging: - driver: none \ No newline at end of file + driver: none diff --git a/_examples/real-world-examples/synchronizing-databases/.validate_example.yml b/_examples/real-world-examples/synchronizing-databases/.validate_example.yml index 1f6700352..cd8d40e2a 100644 --- a/_examples/real-world-examples/synchronizing-databases/.validate_example.yml +++ b/_examples/real-world-examples/synchronizing-databases/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "received user:" diff --git a/_examples/real-world-examples/synchronizing-databases/docker-compose.yml b/_examples/real-world-examples/synchronizing-databases/docker-compose.yml index f6d066848..1b09cf7c1 100644 --- a/_examples/real-world-examples/synchronizing-databases/docker-compose.yml +++ b/_examples/real-world-examples/synchronizing-databases/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.20 + image: golang:1.23 restart: unless-stopped depends_on: - mysql diff --git a/_examples/real-world-examples/transactional-events-forwarder/.validate_example.yml b/_examples/real-world-examples/transactional-events-forwarder/.validate_example.yml index 19ff1d170..7dc4f80cb 100644 --- a/_examples/real-world-examples/transactional-events-forwarder/.validate_example.yml +++ b/_examples/real-world-examples/transactional-events-forwarder/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "Sending a prize to the winner" diff --git a/_examples/real-world-examples/transactional-events-forwarder/docker-compose.yml b/_examples/real-world-examples/transactional-events-forwarder/docker-compose.yml index 24cfa640e..a987ab0b3 100644 --- a/_examples/real-world-examples/transactional-events-forwarder/docker-compose.yml +++ b/_examples/real-world-examples/transactional-events-forwarder/docker-compose.yml @@ -1,12 +1,12 @@ -version: '3' services: server: - image: golang:1.20 + image: golang:1.23 environment: - PUBSUB_EMULATOR_HOST=googlecloud:8085 depends_on: - mysql - googlecloud + restart: unless-stopped volumes: - .:/app - $GOPATH/pkg/mod:/go/pkg/mod diff --git a/_examples/real-world-examples/transactional-events/.validate_example.yml b/_examples/real-world-examples/transactional-events/.validate_example.yml index ecd5c5462..b93869737 100644 --- a/_examples/real-world-examples/transactional-events/.validate_example.yml +++ b/_examples/real-world-examples/transactional-events/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 180 expected_output: "received event" diff --git a/_examples/real-world-examples/transactional-events/docker-compose.yml b/_examples/real-world-examples/transactional-events/docker-compose.yml index 0f0f89ea8..27de13c68 100644 --- a/_examples/real-world-examples/transactional-events/docker-compose.yml +++ b/_examples/real-world-examples/transactional-events/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.20 + image: golang:1.23 restart: unless-stopped depends_on: - mysql diff --git a/dev/validate-examples/main.go b/dev/validate-examples/main.go index 8e9454271..37c77ff83 100644 --- a/dev/validate-examples/main.go +++ b/dev/validate-examples/main.go @@ -4,7 +4,6 @@ import ( "bufio" "fmt" "io" - "io/ioutil" "os" "os/exec" "path/filepath" @@ -24,7 +23,7 @@ type Config struct { } func (c *Config) LoadFrom(path string) error { - file, err := ioutil.ReadFile(path) + file, err := os.ReadFile(path) if err != nil { return err } @@ -109,35 +108,44 @@ func validate(path string) error { } }() - success := make(chan error) + success := make(chan bool) + lines := make(chan string) - go func() { - io.MultiReader() - - output := bufio.NewReader(io.MultiReader(stdout, stderr)) - for { - line, _, err := output.ReadLine() - if err != nil { - if err == io.EOF { - break - } - } + go readLines(stdout, lines) + go readLines(stderr, lines) - fmt.Printf("[%s] > %s\n", color.CyanString(dirName), string(line)) + go func() { + for line := range lines { + fmt.Printf("[%s] > %s\n", color.CyanString(dirName), line) - ok, _ := regexp.Match(config.ExpectedOutput, line) + ok, _ := regexp.MatchString(config.ExpectedOutput, line) if ok { - success <- nil + success <- true return } } - success <- fmt.Errorf("could not find expected output: %s", config.ExpectedOutput) }() select { - case err := <-success: - return err + case <-success: + return nil case <-time.After(time.Duration(config.Timeout) * time.Second): return fmt.Errorf("validation command timed out") } } + +func readLines(reader io.Reader, output chan<- string) { + scanner := bufio.NewScanner(reader) + for scanner.Scan() { + if scanner.Err() != nil { + if scanner.Err() == io.EOF { + return + } + + continue + } + + line := scanner.Text() + output <- line + } +} diff --git a/docs/content/docs/snippets/amqp-consumer-groups/.validate_example.yml b/docs/content/docs/snippets/amqp-consumer-groups/.validate_example.yml index 604924040..9a3497ba9 100644 --- a/docs/content/docs/snippets/amqp-consumer-groups/.validate_example.yml +++ b/docs/content/docs/snippets/amqp-consumer-groups/.validate_example.yml @@ -1,4 +1,4 @@ -validation_cmd: "docker-compose up" -teardown_cmd: "docker-compose down" +validation_cmd: "docker compose up" +teardown_cmd: "docker compose down" timeout: 120 expected_output: "payload: Hello, world!" diff --git a/docs/content/docs/snippets/amqp-consumer-groups/docker-compose.yml b/docs/content/docs/snippets/amqp-consumer-groups/docker-compose.yml index d4fd73875..5ce5c2939 100644 --- a/docs/content/docs/snippets/amqp-consumer-groups/docker-compose.yml +++ b/docs/content/docs/snippets/amqp-consumer-groups/docker-compose.yml @@ -1,7 +1,6 @@ -version: '3' services: server: - image: golang:1.21 + image: golang:1.23 restart: unless-stopped depends_on: - rabbitmq