Skip to content

Conversation

@psteinroe
Copy link
Owner

Updates the publish workflow to build and push a separate Docker image for each sink type using a matrix strategy.

Changes

  • Dockerfile: Accept FEATURES build argument to enable specific sink features
  • publish.yml: Use matrix strategy to build 12 sink images in parallel
  • release.yml: Update release notes to list all available sink images

Image Naming

Each sink gets its own image:

  • ghcr.io/<repo>:<sink>-<version> (e.g., ghcr.io/psteinroe/postgres-stream:kafka-v1.0.0)
  • ghcr.io/<repo>:<sink>-latest (e.g., ghcr.io/psteinroe/postgres-stream:kafka-latest)

Available Sinks

Sink Feature Flag
elasticsearch sink-elasticsearch
gcp-pubsub sink-gcp-pubsub
kafka sink-kafka
kinesis sink-kinesis
meilisearch sink-meilisearch
nats sink-nats
rabbitmq sink-rabbitmq
redis-streams sink-redis-streams
redis-strings sink-redis-strings
sns sink-sns
sqs sink-sqs
webhook sink-webhook

Benefits

  • Smaller image sizes (only includes dependencies for one sink)
  • Parallel builds for faster releases
  • Per-sink caching for efficient rebuilds

Updates the publish workflow to build and push a separate Docker
image for each sink type using a matrix strategy. All sink images
are built in parallel for faster releases.

Image naming: ghcr.io/<repo>:<sink>-<version>
Example: ghcr.io/psteinroe/postgres-stream:kafka-v1.0.0
@psteinroe psteinroe merged commit a9db434 into main Jan 13, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants