Skip to content

feat(ci): publish dc-ros and dc-uploader images to ghcr - #462

Merged
Minipada merged 3 commits into
jazzyfrom
feature/448-publish-dc-ros-and-dc-uploader-images-to
Sep 1, 2026
Merged

feat(ci): publish dc-ros and dc-uploader images to ghcr#462
Minipada merged 3 commits into
jazzyfrom
feature/448-publish-dc-ros-and-dc-uploader-images-to

Conversation

@Minipada

@Minipada Minipada commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds production Containerfiles for dc-ros and dc-uploader (containers/dc-ros/, containers/dc-uploader/) — thin layers over the already-tested dc-workspace image, with no E2E-only content (no workload generator, no test params), each with its own minimal entrypoint.
  • Adds build-dc-ros-image and build-dc-uploader-image CI jobs that build and push both images to ghcr.io, tagged with the commit :<sha> and a floating :latest, gated to push events on jazzy only (never a PR build) — the first runnable images this repo publishes, per CLAUDE.md's convention.
  • Adds a verify-published-images job (tools/release/scripts/verify_published_images.sh) that pulls the just-published dc-ros/dc-uploader images plus the public Vector image and runs the three-container topology with zero local podman build, proving a Record flows from dc-ros through vector into Postgres and that dc-uploader starts cleanly off DC_UPLOADER_* env vars alone.
  • Fixes the Vector image tag / vector_vendor pin drift risk: compose.split.yaml's vector service now interpolates VECTOR_VERSION (derived from ros2_data_collection.repos, same grep four sibling E2E scripts already use) instead of hardcoding 0.57.0; run_split.sh exports it.

Closes #448

Test plan

  • prek run --all-files --skip build-doc (hadolint, shellcheck, REUSE, ruff, etc.) passes locally
  • hadolint/shellcheck run directly against the new Containerfiles/scripts
  • CI: build-dc-ros-image, build-dc-uploader-image, and verify-published-images run and go green on push to jazzy

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

codecov Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.44%. Comparing base (1e48007) to head (4d08db0).
⚠️ Report is 1 commits behind head on jazzy.

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           
Flag Coverage Δ
cpp-jazzy 71.44% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…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>
@Minipada
Minipada merged commit 7b4e211 into jazzy Sep 1, 2026
13 checks passed
@github-actions
github-actions Bot deleted the feature/448-publish-dc-ros-and-dc-uploader-images-to branch September 1, 2026 07:19
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.

1 participant