-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Description
I'm done fighting with GitHub actions for today, but I suspect the cache plugin we're using might be causing nondeterministic build failures on Linux.
Example run: https://github.com/stadiamaps/sdf_font_tools/actions/runs/16134853108/job/45529126931
Hypothesis:
- We have a Rust caching action; I don't know how it works, but presumably it stores some sort of build artifacts so we don't have to do a scratch rebuild. Sounds like a good idea, but there are edge cases.
- We also have a matrix of several Ubuntu runners.
- The cache key is identical across disparate linux runners (you can verify this in the logs; this is where things probably go wrong).
- Actions execute in a non-deterministic order, and so we're sometimes caching artifacts which may not be compatible with another "Ubuntu" runner.
I'm not 100% positive this is the root cause of the failures, but it's a reasonable guess. Regardless, the action seems to be making unsound assumptions by sharing across Ubuntu runners.
(If anyone gets the idea that we can get some sort of GitHub runner slug like ubuntu-latest out of an env variable, this won't work because these are not stable, and also usually lie; see macos-latest, which is a year out of date most of the time.)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels