feat(ci): publish dc-ros and dc-uploader images to ghcr - #462
Merged
Minipada merged 3 commits intoSep 1, 2026
Conversation
Adds production Containerfiles for dc-ros and dc-uploader (thin layers over the tested workspace image, no E2E-only content), wires two new CI jobs that build and push them to ghcr on merge to jazzy tagged with :<sha> and a floating :latest, and adds a verify-published-images job that pulls and runs the three-container topology with no local build to prove the images work. Also fixes the Vector image tag / vector_vendor version drift risk flagged in #448: compose.split.yaml's vector service now interpolates VECTOR_VERSION (derived from ros2_data_collection.repos, same as four sibling e2e scripts) instead of hardcoding it. Closes #448 Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## jazzy #462 +/- ##
=======================================
Coverage 71.44% 71.44%
=======================================
Files 124 124
Lines 7563 7563
=======================================
Hits 5403 5403
Misses 2160 2160
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
…ction dc-ros and dc-uploader's publish jobs each hand-rolled the same podman tag + push-with-retry loop for their :<sha>/:latest pair. Pulled it into .github/actions/podman-push, matching the reference convention CLAUDE.md points at (~/dev/monorepo's .github/actions/podman-push). Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
The workspace and E2E image pushes had the same hand-rolled retry loop podman-push was just factored out of. Route all four ghcr pushes through the composite action so there's one retry implementation, not two. Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
github-actions
Bot
deleted the
feature/448-publish-dc-ros-and-dc-uploader-images-to
branch
September 1, 2026 07:19
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
dc-rosanddc-uploader(containers/dc-ros/,containers/dc-uploader/) — thin layers over the already-testeddc-workspaceimage, with no E2E-only content (no workload generator, no test params), each with its own minimal entrypoint.build-dc-ros-imageandbuild-dc-uploader-imageCI jobs that build and push both images to ghcr.io, tagged with the commit:<sha>and a floating:latest, gated topushevents onjazzyonly (never a PR build) — the first runnable images this repo publishes, per CLAUDE.md's convention.verify-published-imagesjob (tools/release/scripts/verify_published_images.sh) that pulls the just-publisheddc-ros/dc-uploaderimages plus the public Vector image and runs the three-container topology with zero localpodman build, proving a Record flows fromdc-rosthroughvectorinto Postgres and thatdc-uploaderstarts cleanly offDC_UPLOADER_*env vars alone.vector_vendorpin drift risk:compose.split.yaml'svectorservice now interpolatesVECTOR_VERSION(derived fromros2_data_collection.repos, samegrepfour sibling E2E scripts already use) instead of hardcoding0.57.0;run_split.shexports it.Closes #448
Test plan
prek run --all-files --skip build-doc(hadolint, shellcheck, REUSE, ruff, etc.) passes locallyhadolint/shellcheckrun directly against the new Containerfiles/scriptsbuild-dc-ros-image,build-dc-uploader-image, andverify-published-imagesrun and go green on push tojazzy