Skip to content

Commit d4760f4

Browse files
define-nullclaude
andauthored
ci: fetch LFS in clippy and heal stale pointers in test (#109)
Self-hosted jobs share one working tree. Without lfs, actions/checkout sets GIT_LFS_SKIP_SMUDGE=1, so an LFS file that clippy checks out first lands as a pointer and later checkouts never rewrite it. That is why the monad fixture from 0182f4d fails on dev-server-2 with `Error("expected value", line: 1, column: 1)`. `lfs: true` on clippy stops new pointers; `git lfs checkout` in test replaces the ones already on disk from the fetched object cache. Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
1 parent af01db1 commit d4760f4

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

‎.github/workflows/tests.yaml‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ jobs:
3434
if: github.event_name == 'push' || !github.event.pull_request.draft
3535
steps:
3636
- uses: actions/checkout@v4
37+
with:
38+
# Self-hosted jobs share one working tree. Without lfs, checkout writes new LFS files
39+
# as pointers and later checkouts never rewrite them, so `test` read pointers and the
40+
# query fixtures failed. Objects are cached under .git/lfs, so this is cheap.
41+
lfs: true
3742
- uses: dsherret/rust-toolchain-file@v1
3843
- uses: Swatinem/rust-cache@v2
3944
with:
@@ -66,6 +71,10 @@ jobs:
6671
- uses: actions/checkout@v4
6772
with:
6873
lfs: true
74+
# `git lfs fetch` above only fills the object cache. Pointers that an earlier checkout
75+
# without lfs left in the shared working tree are never rewritten by git, so replace
76+
# them from the cache here.
77+
- run: git lfs checkout
6978
- uses: dsherret/rust-toolchain-file@v1
7079
- uses: Swatinem/rust-cache@v2
7180
with:

0 commit comments

Comments
 (0)