diff --git a/.github/actions/setup-go/action.yaml b/.github/actions/setup-go/action.yaml index 29b7061e85975..4d696ef298b12 100644 --- a/.github/actions/setup-go/action.yaml +++ b/.github/actions/setup-go/action.yaml @@ -39,24 +39,25 @@ runs: path: | ${{ env.GOMODCACHE }} key: gomodcache-${{ runner.os }}-${{ hashFiles('**/go.sum') }}-${{ github.job }} - restore-keys: | - gomodcache-${{ runner.os }}-${{ hashFiles('**/go.sum') }}- - gomodcache-${{ runner.os }}- + # restore-keys aren't used because it causes the cache to grow + # infinitely. go.sum changes very infrequently, so rebuilding from + # scratch every now and then isn't terrible. - name: Cache $GOCACHE uses: buildjet/cache@v3 with: path: | ${{ env.GOCACHE }} - # Job name must be included in the key for effective - # test cache reuse. + # Job name must be included in the key for effective test cache reuse. # The key format is intentionally different than GOMODCACHE, because any - # time a Go file changes we invalidate this cache, whereas GOMODCACHE - # is only invalidated when go.sum changes. - key: gocache-${{ runner.os }}-${{ github.job }}-${{ hashFiles('**/*.go', 'go.**') }} + # time a Go file changes we invalidate this cache, whereas GOMODCACHE is + # only invalidated when go.sum changes. + # The number in the key is incremented when the cache gets too large, + # since this technically grows without bound. + key: gocache2-${{ runner.os }}-${{ github.job }}-${{ hashFiles('**/*.go', 'go.**') }} restore-keys: | - gocache-${{ runner.os }}-${{ github.job }}- - gocache-${{ runner.os }}- + gocache2-${{ runner.os }}-${{ github.job }}- + gocache2-${{ runner.os }}- - name: Install gotestsum shell: bash