Use matrix.os instead of runner.os in the CI cache key#430
Open
langston-barrett wants to merge 1 commit intohaskell:masterfrom
Open
Use matrix.os instead of runner.os in the CI cache key#430langston-barrett wants to merge 1 commit intohaskell:masterfrom
matrix.os instead of runner.os in the CI cache key#430langston-barrett wants to merge 1 commit intohaskell:masterfrom
Conversation
`runner.os` typically has values like `Linux` or `Windows`, whereas `matrix.os` (which is the value of `runs-on`) has more descriptive values such as `ubuntu-24.04-arm`. In particular, `matrix.os` tends to contain or imply a particular OS version (e.g., `24.04`) and a particular architecture (e.g., x86_64 for `ubuntu-latest`, ARM64 for `ubuntu-latest-arm`). These data are highly relevant to compilation; they should be included in the cache key to avoid spurious sharing of caches between OS versions or architectures. This is not currently a *problem* for `primitive`, as it is only tested against a single OS version and architecture. However, it never hurts to be future proof, especially since using `matrix.os` is just as easy as `runner.os`.
Member
|
cabal does not distinguish by OS version. What makes you think a cache built on ubuntu 20 becomes invalid on ubuntu 22? It would only be true the other way around due to glibc incompatibility. But that's not really a concern in most CIs and can be fixed by busting the cache with an Int key. |
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.
runner.ostypically has values likeLinuxorWindows, whereasmatrix.os(which is the value ofruns-on) has more descriptive values such asubuntu-24.04-arm. In particular,matrix.ostends to contain or imply a particular OS version (e.g.,24.04) and a particular architecture (e.g., x86_64 forubuntu-latest, ARM64 forubuntu-latest-arm). These data are highly relevant to compilation; they should be included in the cache key to avoid spurious sharing of caches between OS versions or architectures.This is not currently a problem for
primitive, as it is only tested against a single OS version and architecture. However, it never hurts to be future proof, especially since usingmatrix.osis just as easy asrunner.os.