Я использую действие GitHub cache , но я заметил, что при сбое задания не будет создан кеш. Из документов :
Если задание успешно завершено , действие создает новый кэш с содержимым каталога пути.
Урезанная версия моего YAML-файла рабочего процесса:
name: Build
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Setup Node.js
uses: actions/setup-node@master
with:
node-version: '10.x'
- name: Get yarn cache path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Restore yarn cache
uses: actions/cache@v1
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install yarn dependencies
run: yarn install
- name: Build
run: yarn build
Я заметил, что если мой шаг Build
завершится неудачно, последующий шаг cache
будет пропущен без необходимости, что приведет к установке зависимостей не быть кэшированным. Это требует последующих запусков для повторной загрузки зависимостей, что замедляет работу.
Есть ли способ всегда кэшировать зависимости, даже если этап сборки завершается неудачей?