ci: Migrate to detect-versions with namespaced cache keys #1063

Merged
tcpipuk merged 3 commits from tom/detect-versions into main 2025-09-23 03:34:28 +00:00
Owner

This replaces the local detect-runner-os action with external detect-versions@v1 to lower reliance on custom actions.

While updating the cache keys, I've added architecture detection for future cross-platform support, and namespaced all cache keys with continuwuity- prefix for collision safety on runners.

To match, cache mount IDs in Dockerfiles have been updated with the new namespacing convention, so cache isolation is consistent across all CI/builds.

This replaces the local `detect-runner-os` action with external [`detect-versions@v1`](https://git.tomfos.tr/actions/detect-versions) to lower reliance on custom actions. While updating the cache keys, I've added architecture detection for future cross-platform support, and namespaced all cache keys with `continuwuity-` prefix for collision safety on runners. To match, cache mount IDs in Dockerfiles have been updated with the new namespacing convention, so cache isolation is consistent across all CI/builds.
tcpipuk self-assigned this 2025-09-22 15:12:27 +00:00
Jade approved these changes 2025-09-22 15:51:45 +00:00
Jade left a comment
Owner

Was cache collisions an issue we were running into? AFAK they're already split by repo

Was cache collisions an issue we were running into? AFAK they're already split by repo
@ -81,2 +80,3 @@
key: continuwuity-renovate-osv-cache-${{ github.run_id }}
restore-keys: |
osv-cache-
continuwuity-renovate-osv-cache-
Owner

maybe just renovate-osv-cache?

maybe just `renovate-osv-cache`?
Author
Owner

Only in buildkit, but as I already was updating GHA keys for architecture, it made sense to add a namespace at the same time.

Only in buildkit, but as I already was updating GHA keys for architecture, it made sense to add a namespace at the same time.
Owner

I mean renovate isn't continuwuity code and is its own thing rather than tied to any of our actions

I mean renovate isn't continuwuity code and is its own thing rather than tied to any of our actions
Author
Owner

I can revert the file if you really want, it just didn't seem like a bad idea to namespace all cache keys as a general rule?

I can revert the file if you really want, it just didn't seem like a bad idea to namespace all cache keys as a general rule?
Owner

Yeah, but what I mean is it would make more sense to name space this under just renovate. 😅

Yeah, but what I mean is it would make more sense to name space this under just renovate. 😅
Author
Owner

Oh, I see... as they're already namespaced as renovate, that makes sense - I'll revert that one 😄

Oh, I see... as they're already namespaced as renovate, that makes sense - I'll revert that one 😄
tcpipuk marked this conversation as resolved
tcpipuk force-pushed tom/detect-versions from e6ee6e7a65
Some checks failed
Release Docker Image / Build linux-amd64 (release) (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (release) (pull_request) Has been cancelled
Release Docker Image / Create Multi-arch Release Manifest (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Create Max-Perf Manifest (pull_request) Has been cancelled
Checks / Prek / Pre-commit & Formatting (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
Documentation / Build and Deploy Documentation (pull_request) Has been cancelled
to 5d8b700826
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Successful in 51s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m53s
Release Docker Image / Build linux-amd64 (release) (pull_request) Successful in 5m37s
Release Docker Image / Build linux-arm64 (release) (pull_request) Successful in 6m6s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 12m23s
Release Docker Image / Create Multi-arch Release Manifest (pull_request) Successful in 11s
Release Docker Image / Build linux-amd64 (max-perf) (pull_request) Successful in 14m48s
Release Docker Image / Build linux-arm64 (max-perf) (pull_request) Successful in 14m46s
Release Docker Image / Create Max-Perf Manifest (pull_request) Successful in 9s
2025-09-22 16:09:19 +00:00
Compare
Author
Owner

This is mainly another build optimisation attempt - the sccache action is doing good work, but I only see about 65% hitrate a lot of the time. I've noticed we're caching target build/binaries, so have dropped that out, but want to make sure we're caching the deps and incrementals without the clippy checks needing to upload a big 2GB cache each time 🥲

This is mainly another build optimisation attempt - the sccache action is doing good work, but I only see about 65% hitrate a lot of the time. I've noticed we're caching target build/binaries, so have dropped that out, but want to make sure we're caching the deps and incrementals without the clippy checks needing to upload a big 2GB cache each time 🥲
Owner

that all makes sense to me!

that all makes sense to me!
Owner

Caches should already be split by repository so we shouldn't run into any collisions, but I don't particularly see the harm. Renaming that docker cachr mount does make sense though if you are using it the same buildkit instance, because that isn't automatically namespaced.
Anyway, all good.

Caches should already be split by repository so we shouldn't run into any collisions, but I don't particularly see the harm. Renaming that docker cachr mount does make sense though if you are using it the same buildkit instance, because that isn't automatically namespaced. Anyway, all good.
tcpipuk force-pushed tom/detect-versions from 5d8b700826
All checks were successful
Documentation / Build and Deploy Documentation (pull_request) Successful in 51s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m53s
Release Docker Image / Build linux-amd64 (release) (pull_request) Successful in 5m37s
Release Docker Image / Build linux-arm64 (release) (pull_request) Successful in 6m6s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 12m23s
Release Docker Image / Create Multi-arch Release Manifest (pull_request) Successful in 11s
Release Docker Image / Build linux-amd64 (max-perf) (pull_request) Successful in 14m48s
Release Docker Image / Build linux-arm64 (max-perf) (pull_request) Successful in 14m46s
Release Docker Image / Create Max-Perf Manifest (pull_request) Successful in 9s
to 200ff35372
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 55s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m55s
Release Docker Image / Build linux-amd64 (release) (pull_request) Successful in 7m58s
Release Docker Image / Build linux-arm64 (release) (pull_request) Successful in 7m37s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 10m53s
Release Docker Image / Create Multi-arch Release Manifest (pull_request) Successful in 11s
Release Docker Image / Build linux-arm64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Create Max-Perf Manifest (pull_request) Has been cancelled
2025-09-23 03:16:30 +00:00
Compare
tcpipuk force-pushed tom/detect-versions from 200ff35372
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 55s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 1m55s
Release Docker Image / Build linux-amd64 (release) (pull_request) Successful in 7m58s
Release Docker Image / Build linux-arm64 (release) (pull_request) Successful in 7m37s
Checks / Prek / Clippy and Cargo Tests (pull_request) Successful in 10m53s
Release Docker Image / Create Multi-arch Release Manifest (pull_request) Successful in 11s
Release Docker Image / Build linux-arm64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Create Max-Perf Manifest (pull_request) Has been cancelled
to 554c3c3a45
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 4m4s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 2m3s
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
Release Docker Image / Create Multi-arch Release Manifest (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Create Max-Perf Manifest (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (release) (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (release) (pull_request) Has been cancelled
2025-09-23 03:17:19 +00:00
Compare
tcpipuk force-pushed tom/detect-versions from 554c3c3a45
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Successful in 4m4s
Checks / Prek / Pre-commit & Formatting (pull_request) Successful in 2m3s
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
Release Docker Image / Create Multi-arch Release Manifest (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Create Max-Perf Manifest (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (release) (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (release) (pull_request) Has been cancelled
to 8959ac06ac
Some checks failed
Documentation / Build and Deploy Documentation (pull_request) Has been cancelled
Checks / Prek / Pre-commit & Formatting (pull_request) Has been cancelled
Checks / Prek / Clippy and Cargo Tests (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (release) (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (release) (pull_request) Has been cancelled
Release Docker Image / Create Multi-arch Release Manifest (pull_request) Has been cancelled
Release Docker Image / Build linux-amd64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Build linux-arm64 (max-perf) (pull_request) Has been cancelled
Release Docker Image / Create Max-Perf Manifest (pull_request) Has been cancelled
Maintenance / Renovate / Renovate (push) Successful in 8m17s
Release Docker Image / Build linux-amd64 (release) (push) Successful in 9m5s
Release Docker Image / Build linux-arm64 (release) (push) Successful in 9m8s
Documentation / Build and Deploy Documentation (push) Successful in 51s
Release Docker Image / Create Multi-arch Release Manifest (push) Successful in 28s
Release Docker Image / Build linux-arm64 (max-perf) (push) Successful in 19m16s
Release Docker Image / Build linux-amd64 (max-perf) (push) Successful in 19m21s
Release Docker Image / Create Max-Perf Manifest (push) Successful in 20s
Checks / Prek / Pre-commit & Formatting (push) Successful in 1m17s
Checks / Prek / Clippy and Cargo Tests (push) Successful in 8m45s
2025-09-23 03:30:56 +00:00
Compare
tcpipuk deleted branch tom/detect-versions 2025-09-23 03:34:28 +00:00
nex added this to the 0.5.0 milestone 2025-09-25 02:11:32 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
continuwuation/continuwuity!1063
No description provided.