Conversation
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
|
@greptileai I think this needs to be added to the renovate exclusions |
|
You're right. Renovate uses You should add a This targets the |
Greptile SummaryThis PR fixes the
Confidence Score: 5/5Safe to merge — the core regression fix is correct and the only gap is a missing future-proofing trigger described in the title but not implemented. No P0 or P1 findings. The one P2 observation (missing auto-rebuild trigger) is a future-proofing gap, not a current breakage. The primary fix (removing the stale digest) is sound, and the Renovate rule correctly prevents re-pinning.
Important Files Changed
Sequence DiagramsequenceDiagram
participant Dev as Developer
participant GH as GitHub Actions
participant GHCR as ghcr.io (GHCR)
participant COPR as COPR Build
Note over Dev,COPR: Before this PR (broken state)
Dev->>GH: Push fix to packaging/copr/Dockerfile
GH-->>GHCR: No rebuild triggered (only tags/workflow_dispatch)
GH->>COPR: copr-publish uses stale digest → ModuleNotFoundError
Note over Dev,COPR: After this PR (fixed state)
Dev->>GH: Push release tag
GH->>GHCR: docker.yml rebuilds :copr image
GH->>COPR: copr-publish pulls latest :copr tag → success
Note over Dev,COPR: Still missing (paths trigger not added)
Dev->>GH: Push change to packaging/copr/Dockerfile on main
GH-->>GHCR: No rebuild triggered (paths trigger absent)
Note over GHCR: :copr tag stays at previous build until next tag push
Reviews (5): Last reviewed commit: "fix(copr): drop docker-copr.yml per main..." | Re-trigger Greptile |
|
Thanks for digging into this! I think the scope can be trimmed — the two essential changes are dropping the The new Could you drop the This comment was generated by an AI coding assistant. |
|
Thanks for the clear feedback, @jdx! You're absolutely right — the I've just dropped
Should be a clean, easy-to-review diff now. Let me know if anything else needs adjusting! |
|
Want your agent to iterate on Greptile's feedback? Try greploops. |
797b5ab to
7a565af
Compare
… changes The copr-publish workflow was pinned to a stale image digest (sha256:da63a0f...) that predated the fix in jdx#9421 which switched copr-cli installation from pip3 to dnf. As a result, every copr-publish run after the merge still used the old broken image and failed with: ModuleNotFoundError: No module named 'rich' Fixes: - Remove the pinned digest from copr-publish.yml so the mutable ghcr.io/jdx/mise:copr tag is used, always pulling the latest built image. - Add a push trigger to docker.yml scoped to packaging/copr/Dockerfile so the :copr image is automatically rebuilt (and tag updated) whenever the Dockerfile changes on main, preventing this class of stale-digest regression in the future.
…e exclusion - Revert docker.yml to original state (tag-push + workflow_dispatch only) The paths+branches trigger was a P1: it caused dockerhub and merge jobs to also fire on main-branch Dockerfile pushes, overwriting :latest on Docker Hub and GHCR with an unreleased build. - Add docker-copr.yml: lightweight dedicated workflow that only rebuilds the ghcr.io/jdx/mise:copr image when packaging/copr/Dockerfile changes on main. Fully isolated — no dockerhub or merge jobs involved. - Add packageRule to renovate.json to exclude ghcr.io/jdx/mise (tag: copr) from digest pinning. Without this Renovate would re-pin the mutable :copr tag back to a stale digest on its next run, regressing the fix.
Per jdx's review feedback, the dedicated docker-copr.yml is not needed. Releases push a v* tag which already triggers docker.yml to rebuild :copr, and workflow_dispatch on docker.yml covers ad-hoc rebuilds. The two essential fixes remain: - copr-publish.yml: floating :copr tag (no stale digest) - renovate.json: exclude copr from digest pinning
7a565af to
0271c8e
Compare
### 🐛 Bug Fixes - **(copr)** remove stale pinned image digest and rebuild copr image on Dockerfile changes by @bestagi in [#9451](#9451) - **(task)** avoid gix panic when cloning a remote task by commit SHA by @jdx in [#9473](#9473) --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Problem
After #9421 was merged (which fixed
copr-cliinstallation by switching frompip3 install copr-clitodnf install -y copr-cli), thecopr-publishworkflow continued to fail with the exact same error:Seen in: https://github.com/jdx/mise/actions/runs/25053108886/job/73385917506
Root cause
The
copr-publish.ymlworkflow uses a hardcoded image digest:This digest points to the old image built before the
packaging/copr/Dockerfilewas fixed. Thedocker.ymlworkflow only rebuilds images on tag pushes orworkflow_dispatch— it does not trigger on commits tomain. So even though the Dockerfile was fixed in #9421, the pinned digest in the workflow still referenced the broken pip-installed image.Fix
1.
copr-publish.yml— remove stale pinned digestReplace:
With:
This ensures the workflow always uses the latest built
:coprimage instead of a stale pinned version.2.
docker.yml— auto-rebuild copr image on Dockerfile changesAdd a
pushtrigger scoped topackaging/copr/Dockerfileonmainso the:coprimage is automatically rebuilt and the tag updated whenever the Dockerfile changes. This prevents this class of stale-digest regression in the future.Testing
Once merged, re-run the
copr-publishworkflow — it will pull the latest:coprimage (built from the fixed Dockerfile withdnf install -y copr-cli) and therichmodule error will be gone.