docker: publish branch-aligned repeater images and trigger rebuilds from core#258
Open
yellowcooln wants to merge 2 commits into
Open
docker: publish branch-aligned repeater images and trigger rebuilds from core#258yellowcooln wants to merge 2 commits into
yellowcooln wants to merge 2 commits into
Conversation
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.
PR Summary
This PR fixes how
pyMC_RepeaterDocker images are built and consumed so published images reliably track the matchingpyMC_corebranch and commit state.Before this change, Docker builds installed repeater using a plain:
pip install .That allowed the
pyMC_core@devdependency to remain stale inside freshly published images if Docker reused cached layers.The sample
docker-compose.ymlalso rebuilt locally instead of pulling the published image, which bypassed the Docker publish workflow entirely.This PR makes the Docker pipeline deterministic and channel-aware.
What Changed
Deterministic pyMC_core Pinning
Docker builds are now branch-aware:
devrepeater images build againstpyMC_core@devmainrepeater images build againstpyMC_core@mainThe publish workflow now:
Resolves the exact current
pyMC_corecommit SHA at build timePasses both:
PYMC_CORE_REFPYMC_CORE_SHAInstalls
pyMC_coreby exact commit SHAInstalls repeater using:
pip install --no-depsThis guarantees the published image contains a pinned and traceable
pyMC_corerevision instead of a floating or cached branch tip.Docker Consumption Changes
The sample container workflow now consumes published images directly instead of rebuilding locally.
docker-compose.yml
Updated to:
Use
image:instead ofbuild:Set:
pull_policy: alwaysPass:
PUIDPGIDas runtime environment variables instead of build args.
README Updates
Documentation now instructs users to:
This ensures deployments actually receive the latest published image.
CI / Workflow Changes
Repeater Docker Publish Workflow
Extended
.github/workflows/docker-publish.ymlto support automatic rebuilds whenpyMC_corechanges.Added:
repository_dispatchsupportDispatch payload support for:
channelcore_refcore_shaMatching repeater branch checkout for dispatch-triggered rebuilds
Docker tagging by:
OCI-style image labels for:
pyMC_core Trigger Workflow
Added companion workflow:
.github/workflows/trigger-repeater-docker-rebuild.ymlThis workflow:
Triggers on
mainanddevpushesDispatches rebuild events to the repeater repo
Sends:
This allows a new
pyMC_coremerge to automatically rebuild the correct repeater Docker image.Files Changed
Repeater
dockerfile.github/workflows/docker-publish.ymldocker-compose.ymlREADME.mdCore
.github/workflows/trigger-repeater-docker-rebuild.ymlWhy This Matters
This removes the stale-core-in-fresh-image problem and keeps
mainanddevchannels aligned across repositories.It also makes the published Docker images the real source of truth for:
Notes
Required Secret
The core-side dispatch workflow requires:
REPEATER_REPO_DISPATCH_TOKENManual Workflow Support
The repeater publish workflow still supports manual
workflow_dispatch, but: