Skip to content

Fix bad caching or something in CI #24

@ianthetechie

Description

@ianthetechie

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.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions