В каких пределах работают действия / кеш Github?
Я не совсем понимаю, насколько работают действия / кеш Github , что я имею в виду:
Кеширование работает нормально, если я делаю пул-реквест, а затем в том же пул-реквесте добавляю еще одну фиксацию, но если я создаю новый пул-реквест в той же ветке - кеширование сбрасывается и начинается снова, но почему?
Есть ли способ распространить кеширование файлов на все
yml
файлы и чтобы каждый запрос на перенос использовал существующее кеширование?
Потому что для ускорения работы оказывается - разработчикам всегда нужно слить работу в одну ветку, и это как-то похоже на какую-то чушь.
Информация
Мой ключ кеширования сформирован следующим образом
- uses: actions/cache@v2
id: composer-cache
with:
path: .github/docker/development/php-cli/composer/cache
key: ${{ runner.os }}-develop-composer-${{ hashFiles('src/composer.lock') }}
restore-keys: |
${{ runner.os }}-develop-composer-
1 ответ
Да, действие кеширования GitHub имеет неинтуитивное поведение в разных ветках. Рабочие процессы запросов на вытягивание не используются совместно, а рабочие процессы тегов никогда не попадают в кеш.
В
Рабочий процесс может получить доступ и восстановить кэш, созданный в текущей ветке, базовой ветке (включая базовые ветки разветвленных репозиториев) или ветке по умолчанию (обычно). Например, кеш, созданный в ветке по умолчанию, будет доступен из любого запроса на вытягивание. Кроме того, если ветка имеет базовую ветвь, рабочий процесс, запущенный на, будет иметь доступ к кешам, созданным в ветке по умолчанию (),
feature-a
, иfeature-b
.
Таким образом, решение состоит в том, чтобы создать отдельный рабочий процесс, запускаемый нажатием на
main
- плюс любые базовые ветки, которые вам нравятся - просто для того, чтобы свежий кеш был доступен для запросов на вытягивание и тегов.