Действие кэша Github: Content-Length не найден в ответе BLOB-объекта

В мое программное обеспечение входит сторонняя библиотека, которая редко меняется и ее сборка занимает 8 минут, поэтому я решил, что могу ускорить конвейер, кэшируя выходные данные сборки. У меня есть следующее действие кэша рабочего процесса GitHub:

        - name: Cache third-party libraries
          id: cache-libs
          uses: actions/cache@v3
          with:
            path: Path\to\libs
            key: "test-key"

В первой сборке на этапе «Кэшировать сторонние библиотеки» не удается найти кеш, как и ожидалось:

Run actions/cache@v3
Cache not found for input keys: test-key

После сборки я вижу, что кеш создается на этапе «Post Cache сторонних библиотек»:

6s
Post job cleanup.
"C:\Program Files\Git\usr\bin\tar.exe" --posix -cf cache.tzst --exclude cache.tzst -P -C C:/GitHub/RUNNER-1/_work/project/project --files-from manifest.txt --force-local --use-compress-program "zstd -T0"
Cache Size: ~13 MB (13645556 B)
Cache saved successfully
Cache saved with key: test-key

Я вижу запись кэша, когда посещаю my_repo/actions/caches. Однако когда я перезапускаю рабочий процесс, восстановление кеша не удается:

Run actions/cache@v3
Warning: Failed to restore: Content-Length not found on blob response
Cache not found for input keys: test-key

Что именно означает эта ошибка и есть ли способ ее исправить?

Обновлено: я также пытался запустить действие сохранения непосредственно после сборки (как описано здесь), но поведение такое же: шаг сохранения работает, но при повторном запуске выборка кеша завершается с ошибкой «Content- Длина не найдена в сообщении ответа на большой двоичный объект.


110
1

Ответ:

Решено

Причина «Длина контента не найдена в ответе на большой двоичный объект» заключается в том, что на нашем корпоративном сервере GitHub отключены кеши, как я только что узнал. Смущает то, что ошибка появляется только при восстановлении кеша, а теперь и при его создании.

На данный момент я просто установил ccache вместе с компилятором, что помогает ускорить повторяющиеся сборки одних и тех же исходных файлов.