Replace `runner.os` with `matrix.os` in cache keys
Hm, actually, sharing caches between PRs will cause thrashing (probably not corruption, I hope) if multiple PRs are building at the same time. I think I'll just replace runner.os with matrix.os for now. (In a separate PR, since that should be done on master and backported.)
Originally posted by @geekosaur in https://github.com/haskell/cabal/issues/11296#issuecomment-3544428049
Also runner.arch; it won't cause conflicts since ABI hashes will differ, but caches will be evicted more quickly if they're shared due to larger size, and there may be contention if multiple jobs use the same cache.
Also, look into whether the fallback cache can cause conflicts due to being created in a different OS version.