LocalAI/.github/workflows
Ettore Di Giacinto 8521af145f ci(merge): source per-arch digests from ci-cache, not local-ai-backends
Follow-up to PR #9781. v4.2.2 (run 25745181433) showed the keepalive
anchor in ci-cache wasn't enough on its own: 19 of 37 multiarch merges
still failed with "manifest not found" for the same digests we'd just
anchored.

Quay's manifest GC is per-repository. The anchor tag in ci-cache
protects the manifest copy that lives in ci-cache, but the same digest
in local-ai-backends is independently tracked and gets reaped because
nothing in local-ai-backends references it (push-by-digest=true leaves
it untagged). The merge then asks
`local-ai-backends@sha256:<digest>` and quay correctly says "not found"
in that repo, even though `ci-cache@sha256:<digest>` is alive and well.

Empirical confirmation against a live failed digest from v4.2.2:

  $ docker buildx imagetools inspect quay.io/go-skynet/ci-cache@sha256:05377fe6...
  Name: quay.io/go-skynet/ci-cache@sha256:05377fe6...
  MediaType: application/vnd.docker.distribution.manifest.v2+json
  $ docker buildx imagetools inspect quay.io/go-skynet/local-ai-backends@sha256:05377fe6...
  ERROR: ... not found

Switch the source of the quay merge step to ci-cache. The blobs the
manifest references are already accessible from local-ai-backends
(verified via direct registry HEAD: HTTP 200 from both repos — the
original push cross-mounted blobs at content-addressable storage time
and they outlive the per-repo manifest GC). buildx imagetools create
republishes the manifest into local-ai-backends, then writes the
user-facing manifest list pointing at it. End state is self-contained:
the published manifest list references child manifests by digest only,
no embedded reference to ci-cache.

Dockerhub merge step is unchanged. Dockerhub's GC isn't aggressive
enough to reap untagged manifests at the timescales we operate on
(verified: localai/localai-backends@<same digest> still resolves cleanly
after >24h).

Assisted-by: Claude:claude-opus-4-7
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2026-05-12 22:35:55 +00:00
..
disabled chore(ci): disable CI actions 2026-03-02 14:48:00 +01:00
backend.yml ci: close GC race + cascade-skip + darwin grpc gaps from v4.2.1 (#9781) 2026-05-12 17:22:09 +02:00
backend_build.yml ci: close GC race + cascade-skip + darwin grpc gaps from v4.2.1 (#9781) 2026-05-12 17:22:09 +02:00
backend_build_darwin.yml ci: close GC race + cascade-skip + darwin grpc gaps from v4.2.1 (#9781) 2026-05-12 17:22:09 +02:00
backend_merge.yml ci(merge): source per-arch digests from ci-cache, not local-ai-backends 2026-05-12 22:35:55 +00:00
backend_pr.yml ci: close GC race + cascade-skip + darwin grpc gaps from v4.2.1 (#9781) 2026-05-12 17:22:09 +02:00
base-images.yml ci(base-images): also trigger rebuild on .docker/install-base-deps.sh changes 2026-05-09 22:30:46 +00:00
build-test.yaml feat(ci): allow routing apt traffic through an alternate Ubuntu mirror (#9650) 2026-05-03 23:50:13 +02:00
bump-inference-defaults.yml chore(deps): bump peter-evans/create-pull-request from 7 to 8 (#9114) 2026-03-24 08:50:50 +01:00
bump_deps.yaml ci(bump-deps): register ds4 + move version pin into the Makefile (#9761) 2026-05-11 22:46:02 +02:00
bump_docs.yaml fix(api)!: Stop model prior to deletion (#8422) 2026-02-06 09:22:10 +01:00
checksum_checker.yaml feat(ci): allow routing apt traffic through an alternate Ubuntu mirror (#9650) 2026-05-03 23:50:13 +02:00
deploy-explorer.yaml fix(api)!: Stop model prior to deletion (#8422) 2026-02-06 09:22:10 +01:00
gallery-agent.yaml Change cron schedule to run every 12 hours 2026-04-25 18:38:28 +02:00
generate_intel_image.yaml ci(concurrency): make cancel-in-progress event-aware, group by sha on push 2026-05-09 08:30:55 +00:00
gh-pages.yml chore(deps): bump actions/upload-pages-artifact from 4 to 5 (#9337) 2026-04-13 21:53:47 +02:00
image-pr.yml ci(concurrency): make cancel-in-progress event-aware, group by sha on push 2026-05-09 08:30:55 +00:00
image.yml ci(concurrency): make cancel-in-progress event-aware, group by sha on push 2026-05-09 08:30:55 +00:00
image_build.yml chore(deps): bump actions/upload-artifact from 4 to 7 (#9770) 2026-05-12 09:20:03 +02:00
image_merge.yml chore(deps): bump actions/download-artifact from 4 to 8 (#9771) 2026-05-12 09:20:14 +02:00
lint.yml ci(concurrency): make cancel-in-progress event-aware, group by sha on push 2026-05-09 08:30:55 +00:00
notify-releases.yaml fix(api)!: Stop model prior to deletion (#8422) 2026-02-06 09:22:10 +01:00
release.yaml feat(ci): allow routing apt traffic through an alternate Ubuntu mirror (#9650) 2026-05-03 23:50:13 +02:00
secscan.yaml Revert "chore(deps): bump securego/gosec from 2.22.9 to 2.22.11" (#7789) 2025-12-30 09:58:13 +01:00
stalebot.yml chore(deps): bump actions/stale from 10.1.1 to 10.2.0 (#8633) 2026-02-23 23:27:20 +01:00
test-extra.yml feat(whisper-cpp): implement streaming transcription (#9751) 2026-05-10 23:11:46 +02:00
test.yml ci: drop paths-ignore from test.yml and tests-e2e.yml 2026-05-09 09:23:51 +00:00
tests-aio.yml ci(concurrency): make cancel-in-progress event-aware, group by sha on push 2026-05-09 08:30:55 +00:00
tests-e2e.yml ci: drop paths-ignore from test.yml and tests-e2e.yml 2026-05-09 09:23:51 +00:00
tests-ui-e2e.yml ci(concurrency): make cancel-in-progress event-aware, group by sha on push 2026-05-09 08:30:55 +00:00
update_swagger.yaml feat(ci): allow routing apt traffic through an alternate Ubuntu mirror (#9650) 2026-05-03 23:50:13 +02:00
yaml-check.yml chore(backend gallery): add description for remaining backends (#5679) 2025-06-17 22:21:44 +02:00