We were doing a few things suboptimally:
Making a symlink from the current directory to ../../gstreamer/cerbero so that build-tools kept working, which is not necessary since cerbero relocates all binaries inside the cerbero homedir after extracting the cache
Hard-coding the cerbero builddir when building on Windows because
pwdwas outputting an MSYS-style path which Python can't read
rsync-ing all the contents of $CERBERO_HOST_DIR, which is a completely unnecessary runner cache of cerbero. We have our own build cache from the artifacts server, and the only thing we need to cache on the runner is the fetched sources, which we do by adding $CERBERO_SOURCES to cache: in ci_template.yml
In some cases (1) doesn't work, such as with bison, and we need to set some env vars in that case.