diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index a305d637e65e46c6bfa9ba406e3e967a94233fc6..522244be63dc0bb9e9cc3106a2210f557fe3c599 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -38,7 +38,6 @@ env:
     tools/
     package.json
     pnpm-lock.yaml
-    codecov.yml
 
 jobs:
   setup:
@@ -153,6 +152,7 @@ jobs:
         uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
         with:
           sparse-checkout: ${{ env.SPARSE_CHECKOUT }}
+          filter: blob:none # we don't need all blobs
 
       - name: Setup Node.js
         if: needs.setup.outputs.os-matrix-is-full && runner.os != 'Linux'
@@ -379,6 +379,12 @@ jobs:
     timeout-minutes: 3
     if: (success() || failure()) && github.event.pull_request.draft != true
     steps:
+      - name: Checkout code
+        uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2
+        with:
+          sparse-checkout: codecov.yml
+          filter: blob:none # we don't need all blobs
+
       - name: Download coverage reports
         uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
         with: