Skip to content

docker: publish branch-aligned repeater images and trigger rebuilds from core#258

Draft
yellowcooln wants to merge 3 commits into
pyMC-dev:devfrom
yellowcooln:docker-image-core-sync
Draft

docker: publish branch-aligned repeater images and trigger rebuilds from core#258
yellowcooln wants to merge 3 commits into
pyMC-dev:devfrom
yellowcooln:docker-image-core-sync

Conversation

@yellowcooln
Copy link
Copy Markdown
Collaborator

@yellowcooln yellowcooln commented May 21, 2026

Summary

This PR makes the repeater Docker image build deterministic and branch-aligned with pyMC_core.

  • dev repeater images build against pyMC_core@dev.
  • main repeater images build against pyMC_core@main.
  • The Docker publish workflow resolves the exact pyMC_core commit SHA and passes it into the image build.
  • The Dockerfile installs pymc_core[hardware] from that exact SHA, then installs repeater without letting pip re-resolve pymc_core back to a cached branch tip.
  • The RRD Docker fix from current dev is preserved, including librrd-dev, pkg-config, and the rrdtool Python dependency.

Workflow Behavior

  • Push builds still run for main and dev, but only on pyMC-dev/pyMC_Repeater and yellowcooln/pyMC_Repeater.
  • Fork/sync pushes in other repos no longer publish images automatically.
  • Manual workflow_dispatch still works and lets a user provide a custom Docker image repository.
  • repository_dispatch support was added so pyMC_core can trigger a repeater image rebuild with a known channel, core_ref, and core_sha.
  • Upstream-only Home Assistant add-on notification remains limited to pyMC-dev/pyMC_Repeater.

Docker Compose / User Docs

  • The example compose file now pulls pymcdev/pymc-repeater:dev instead of building locally.
  • pull_policy: always is set so compose pulls the latest published image before recreate.
  • The compose example now bind-mounts ./config to /etc/pymc_repeater and ./data to /var/lib/pymc_repeater.
  • README setup steps now create ./config and ./data, run the radio config script against ./config, and document the default container UID/GID 15888 ownership requirement.

Notes

This PR adds the repeater-side dispatch receiver. The companion pyMC_core workflow and REPEATER_REPO_DISPATCH_TOKEN need to live in the pyMC_core repo separately.

Testing

  • Rebased cleanly onto current pyMC-dev/dev.
  • Built the Docker image locally with no PYMC_CORE_SHA provided, confirming the Dockerfile resolves pyMC_core@dev to an exact SHA.
  • Ran an import smoke test inside the built image: rrdtool, pymc_core, and repeater import successfully.

@yellowcooln yellowcooln marked this pull request as draft May 27, 2026 02:31
@yellowcooln yellowcooln force-pushed the docker-image-core-sync branch from f64be2b to 9cc893c Compare May 27, 2026 14:44
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