From c95486278e01d3c46b6a6cbea4253760c46696d7 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sat, 20 Jun 2026 07:37:10 -0400 Subject: [PATCH] Fix GPU CI: disable codecov safe.directory write (.gitconfig lock race) The two GPU matrix jobs (CUDA Core / CUDA Applications) run concurrently on the same self-hosted runner host sharing a single ~/.gitconfig. The codecov-action@v7 setup runs `git config --global --add safe.directory`, and the two jobs race on git's config lock, failing one job with `error: could not lock config file .../.gitconfig: File exists` (exit 255) even though the tests themselves pass. This is the dominant cause of the intermittent CUDA Core / CUDA Applications reds on main. Setting `disable_safe_directory: true` skips that unnecessary global-git write (the workspace is already owned by the runner user), removing the race without masking any failure. The tests still fully gate the job and coverage still uploads. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/GPU.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/GPU.yml b/.github/workflows/GPU.yml index c686852..3b2ebbb 100644 --- a/.github/workflows/GPU.yml +++ b/.github/workflows/GPU.yml @@ -43,3 +43,10 @@ jobs: files: lcov.info token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false + # The two matrix jobs (Core/Applications) share one self-hosted host + # and a single ~/.gitconfig. codecov-action's `git config --global + # --add safe.directory` setup then races on git's config lock, + # failing one job with "could not lock config file ...: File exists" + # even though tests pass. The workspace is already owned by the + # runner user, so this safe.directory write is unnecessary here. + disable_safe_directory: true