Hi, I've been building a fairly complex CI pipeline using Dagger. Long story short: the CI itself likes to rebuild things every time, even stuff that hasn't changed. One example: we build from source a dependency, fetched from a remote Git repository, by commit. The source is not changing, nor the "instructions" how to build it. We're using the Go SDK.
The observed behaviour is as follows:
dagger callworks correctly locally all the time, returningCACHED. It's not affected by any non-functional change to the pipeline. Testing on macOS, and the Dagger Engine runs in colima.- The same dagger call, but with
_EXPERIMENTAL_DAGGER_RUNNER_HOSTalso returns cached, as long as the dagger pipeline is not touched. As soon as e.g. a comment is introduced in the source, the pipeline rebuilds - The dagger call from the CI runner always rebuilds (I guess it falls in the same category as point two).
The CI runner is based on Forgejo Actions (similar to GitHub actions). It obviously clones a fresh copy of the repository.
Is there a list of things I could check that could trigger the invalidation? It's hard to pinpoint a problem in our pipeline, as the behaviour differs across runners.
Thanks!