ci: smoke-test the pushed docker image#936
Conversation
After publishing, run the image by digest and invoke `oura --version` so a broken image (e.g. a glibc mismatch against the debian:12-slim base) fails the workflow instead of shipping silently. Pulling by digest selects the amd64 variant on the runner. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThe Docker workflow's build-and-push step gains an explicit ChangesDocker CI smoke test
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Context
The recent e2e failure (
GLIBC_2.39 not found) was a runtime-only breakage: the image built and pushed fine, and nothing failed until the binary was actually executed.docker.ymlhad no such check, so a broken production image could ship silently.What this does
Adds a final Smoke test step to the
dockerjob: afterbuild-push, run the image by digest and invokeoura --version.#[clap(version)]is set on the CLI, so--versionexits 0 on a healthy binary.ghcr.io/txpipe/oura@<digest>selects the amd64 variant on the runner, so this catches runtime breakage (glibc mismatch, missing shared lib, bad entrypoint) before the workflow goes green.Scope / limitations
ubuntu-22.04, amd64 is a representative check.docker.ymlinvocation (push tomainandv*tags).🤖 Generated with Claude Code
Summary by CodeRabbit