Skip to content

test(node): Use docker-compose healthchecks for service readiness#20429

Draft
nicohrubec wants to merge 1 commit intodevelopfrom
nh/integration-test-health-checks
Draft

test(node): Use docker-compose healthchecks for service readiness#20429
nicohrubec wants to merge 1 commit intodevelopfrom
nh/integration-test-health-checks

Conversation

@nicohrubec
Copy link
Copy Markdown
Member

@nicohrubec nicohrubec commented Apr 21, 2026

Replace the stdout readyMatches approach in the node-integration-tests runner with Docker's native healthchecks + docker compose up -d --wait. The old approach matched log substrings like 'port 5432', which fire when the socket is bound but not when the server is actually accepting queries.

Each docker-compose.yml now defines a proper healthcheck (pg_isready, mysqladmin ping, redis-cli ping, rabbitmq-diagnostics, etc.), and the runner blocks on --wait until every service reports healthy.

Also renames the redis-cache container to avoid collision with redis.

Closes #20418
Closes #20335

Replace the stdout-scraping readyMatches approach in the node-integration-tests
runner with Docker's native healthchecks + `docker compose up -d --wait`. The
old approach matched log substrings like `'port 5432'` or `'port: 3306'`, which
fire when the socket is bound but not when the server is actually accepting
queries — producing intermittent CI flakes (e.g. #20418, #20335) under load.

Each docker-compose.yml now defines a proper healthcheck (pg_isready,
mysqladmin ping, redis-cli ping, rabbitmq-diagnostics, etc.), and the runner
blocks on `--wait` until every service reports healthy. On failure, the runner
surfaces `docker compose logs` for easier debugging.

Also renames the redis-cache container to avoid collision with redis.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

size-limit report 📦

Path Size % Change Change
@sentry/browser 25.88 kB - -
@sentry/browser - with treeshaking flags 24.35 kB - -
@sentry/browser (incl. Tracing) 43.81 kB - -
@sentry/browser (incl. Tracing + Span Streaming) 45.5 kB - -
@sentry/browser (incl. Tracing, Profiling) 48.73 kB - -
@sentry/browser (incl. Tracing, Replay) 82.98 kB - -
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags 72.5 kB - -
@sentry/browser (incl. Tracing, Replay with Canvas) 87.67 kB - -
@sentry/browser (incl. Tracing, Replay, Feedback) 99.93 kB - -
@sentry/browser (incl. Feedback) 42.7 kB - -
@sentry/browser (incl. sendFeedback) 30.55 kB - -
@sentry/browser (incl. FeedbackAsync) 35.55 kB - -
@sentry/browser (incl. Metrics) 27.16 kB - -
@sentry/browser (incl. Logs) 27.29 kB - -
@sentry/browser (incl. Metrics & Logs) 27.98 kB - -
@sentry/react 27.62 kB - -
@sentry/react (incl. Tracing) 46.05 kB - -
@sentry/vue 30.71 kB - -
@sentry/vue (incl. Tracing) 45.62 kB - -
@sentry/svelte 25.89 kB - -
CDN Bundle 28.57 kB - -
CDN Bundle (incl. Tracing) 46.08 kB - -
CDN Bundle (incl. Logs, Metrics) 29.95 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) 47.12 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) 68.92 kB - -
CDN Bundle (incl. Tracing, Replay) 83.14 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) 84.17 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) 88.61 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) 89.69 kB - -
CDN Bundle - uncompressed 83.59 kB - -
CDN Bundle (incl. Tracing) - uncompressed 137.62 kB - -
CDN Bundle (incl. Logs, Metrics) - uncompressed 87.73 kB - -
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed 141.03 kB - -
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed 211.31 kB - -
CDN Bundle (incl. Tracing, Replay) - uncompressed 255.06 kB - -
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed 258.46 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed 267.97 kB - -
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed 271.36 kB - -
@sentry/nextjs (client) 48.58 kB - -
@sentry/sveltekit (client) 44.22 kB - -
@sentry/node-core 58.02 kB +0.01% +5 B 🔺
@sentry/node 174.89 kB +0.01% +7 B 🔺
@sentry/node - without tracing 97.98 kB +0.02% +11 B 🔺
@sentry/aws-serverless 115.21 kB +0.02% +17 B 🔺

View base workflow run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment