chore(ci): add republish-image workflow (fix broken keycloak-plugins image) - #17
Closed
patextreme wants to merge 1 commit into
Closed
chore(ci): add republish-image workflow (fix broken keycloak-plugins image)#17patextreme wants to merge 1 commit into
patextreme wants to merge 1 commit into
Conversation
Adds a manual (workflow_dispatch) workflow to rebuild and re-push an already-released Docker image to GHCR, without cutting a new release. Motivation: `ghcr.io/hyperledger/identus-keycloak-plugins:0.2.0` became unpullable — its tag index exists but every platform manifest it references returns HTTP 404 (blobs garbage-collected on the orphaned `ghcr.io/hyperledger/` namespace; the repo is `hyperledger-identus/ keycloak-plugins`). This is blocking the identus cloud-agent integration tests, which pull that image. The workflow checks out `v<version>`, rebuilds the plugin jar, and pushes a clean multi-arch image with `--provenance=false` (no attestation manifests). Triggering it for `0.2.0` restores the image. Signed-off-by: Pat Losoponkul <patextreme@hotmail.com>
Contributor
Author
|
Superseded — we're migrating the image to the repo-linked namespace |
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.
Why
The published Docker image
ghcr.io/hyperledger/identus-keycloak-plugins:0.2.0is broken on GHCR — it cannot be pulled:```
$ docker pull ghcr.io/hyperledger/identus-keycloak-plugins:0.2.0
failed to copy: ... manifests/sha256:32aa9fd5... not found: not found
```
The tag's index exists, but every platform manifest it references returns HTTP 404 (amd64 + arm64, all three published tags: `0.2.0`, `0.1.0`, `0.1.0-snapshot.test.1`). The version metadata shows the image was last updated 2024-07-03 yet broke mid-July 2026 — so the manifest blobs were garbage-collected, not lost to a botched re-push. The package is orphaned under the legacy `ghcr.io/hyperledger/` namespace (this repo is `hyperledger-identus/keycloak-plugins`), which is the most plausible GC trigger.
This is blocking every PR on hyperledger-identus/cloud-agent — its integration tests pull this image for the OID4VCI scenarios:
```
tc.docker - keycloak Pulling
tc.docker - manifest unknown
IntegrationTestsRunner > classMethod FAILED
```
What this adds
A manual `workflow_dispatch` workflow (`republish-image.yml`) that rebuilds and re-pushes an already-released image without cutting a new release:
How to use
After merge, run it from the Actions UI (or `gh workflow run republish-image.yml -f version=0.2.0`) to restore `0.2.0`. Then verify:
```bash
docker pull ghcr.io/hyperledger/identus-keycloak-plugins:0.2.0 # should succeed
```
Caveat
This republishes to the same orphaned namespace, so if the GC is periodic the manifests could disappear again. If that happens, the durable fix is to publish under the repo-linked namespace `ghcr.io/hyperledger-identus/keycloak-plugins` (update `release.yml` + the cloud-agent image reference) — that package is auto-linked to this repo and won't be orphaned. Happy to follow up with that if needed.
Notes for reviewer