Cache sccache preprocessor and toolchain dirs across runs#408
Cache sccache preprocessor and toolchain dirs across runs#408trxcllnt merged 14 commits intobranch-25.10from
Conversation
…f $SKIP_RAPIDS_BUILD_UTILS_POST_START_COMMAND is set
…nto fea/preprocessor-caching
| echo "HAS_DEVCONTAINER=false" >> "${GITHUB_ENV}" | ||
| HAS_DEVCONTAINER=false | ||
| if test -f "repo/.devcontainer/cuda${CUDA_VER}-${PACKAGER}/devcontainer.json"; then | ||
| HAS_DEVCONTAINER=true |
There was a problem hiding this comment.
If this is false because there’s no devcontainer, what does the “build devcontainer” workflow do? How does the conditional help us?
There was a problem hiding this comment.
If there's no devcontainer, we want to do nothing without failing the build. GHA has no "exit this workflow early without error" function, so this sets a boolean that all the steps after this check and skip if it's not true.
There was a problem hiding this comment.
If there's no devcontainer, we want to do nothing without failing the build.
Why would we not want to fail the build in that case?
I don't think we should do this... it could silently cover up actual problems. For example, if any repo deviates from the standard naming convention we have (cuda${CUDA_VER}-${PACKAGER}/devcontainer.json), today you get a big loud CI failure telling you about that.
With this check, that'd turn into this job just silently being a no-op, which might be missed.
Repos without devcontainers should just not use this workflow, and this workflow should fail outright if what it needs isn't found.
There was a problem hiding this comment.
We talked offline about this... this is not new behavior, it's only showing up here because of the change to git cloning that now writes the repo to repo/ (changing the file path passed to test -f).
Approving this, but I do think we should remove this HAS_DEVCONTAINER=false behavior in a follow-up.
There was a problem hiding this comment.
Great. I agree we should fail loudly here, and remove this in a follow-up.
This PR caches the
.cache/{sccache,sccache-dist-client}dirs across CI runs so builds are accelerated by sccache's preprocessor cache mode.