Repository navigation
chore(docker): derive the Mago version from the webware-tools pin - #36
Merged
Merged
Conversation
The tooling image pinned Mago with a literal `ARG MAGO_VERSION`, which had drifted from the version this package actually enforces: `mago.toml` here `extends` `vendor/webware/webware-tools/mago.toml`, so the pin mago reads is that file's `version =` (1.49.0, from webware-tools tag 1.0.0-beta.2). Every `mago` run inside the container warned about the mismatch. The version now has exactly one home: the `version =` pin in webinertia/webware-tools/mago.toml. The build resolves it through composer.lock, at the exact revision this package requires, and fails loudly if the lock does not pin webware/webware-tools or the centre pin cannot be read. compose.yml no longer passes the build arg.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
The CI badge pointed at .github/workflows/continuous-integration.yml, which this repository does not have -- it was removed when the repository moved to the organization's required workflow, so the badge returned 404. GitHub's route for a required workflow is /actions/workflows/required/<owner>/<config-repo>/<path>/badge.svg; it returns 200 with the live state.
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.
What
Removes the literal Mago version from this repository's tooling container.
DockerfilecarriedARG MAGO_VERSION=1.47.3andcompose.ymlpassed it as a build arg. That value had drifted from the pin mago actually enforces here:mago.tomlin this packageextendsvendor/webware/webware-tools/mago.toml, whoseversion = "1.49.0"(webware-tools tag1.0.0-beta.2) is whatmagoreads and warns about.How
The build now resolves the version from the pin itself:
COPY composer.lockinto the image (the lock only — the build context has no application files).webware/webware-toolsrevision out of the lock.mago.tomlfromraw.githubusercontent.com(the revision is a commit SHA, so it is immutable).version = "..."and install exactly that Mago release.compose.ymlno longer passesMAGO_VERSION. The build fails loudly if the lock does not pinwebware/webware-tools, or if the centre file has no version pin.Why
The version now has exactly one home:
version =inwebinertia/webware-tools/mago.toml. A Mago bump in the centre reaches this container via whichever revisioncomposer.lockrequires — no per-repository sweep, and no way for the container and the config to disagree.webinertia/.githubgains a guard step that fails any build that re-introduces a literal (DockerfileARG MAGO_VERSION=, a compose build arg, a workflowtools: mago:<ver>, amago.tomlversion =, or a version-pinned mago schema URL). Merge order only matters for other open PRs in this repository: a PR branched from the default branch still carries the literal and would be reddened by the guard until this lands. This PR itself passes either way.Verification
Dockerfileand executed against this repository'scomposer.lock: resolves8c4deefee3e09ff30d2af3fde6250045134dfa4e→1.49.0.sh -non the full RUN body: clean.Also in this PR: the README CI badge
The badge pointed at
.github/workflows/continuous-integration.yml, which this repository does nothave — it was removed when the repository moved to the organization's required workflow — so the
badge has been returning 404.
It now uses GitHub's synthetic route for a required workflow, which resolves and reports the live
state (
200,<title>Required CI - passing</title>):The route spells out the coordinates of the config repository —
required/<owner>/<config-repo>/<path>— because that is where the workflow file lives. A plain
continuous-integration.ymlpath cannotwork: no such file exists here.
Files changed