Как кэшировать папки Gatsby JS .cache и publi c между сборками с помощью действий GitHub - PullRequest
0 голосов
/ 07 апреля 2020

Я пытаюсь сохранить кэшированные данные между нашими сборками Gatsby JS, используя GitHub Actions с использованием задачи actions/cache.

name: Gatsby Contentful Build

on:
  push:
    branches: [master]
  pull_request:
    branches: [master]

jobs:
  build_job:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1.1.0
      - uses: bahmutov/npm-install@v1.1.0
      - name: Cache
        uses: actions/cache@v1.1.2
        with:
          path: .cache
          key: cache-folder-key
      - name: Cache public folder
        uses: actions/cache@v1.1.2
        with:
          path: public
          key: public-folder-key
      - run: cd plugins/gatsby-source-contentful && yarn build
      - run: yarn build

При начальной сборке кэши не обнаруживаются, затем gatsby создает .cache и публикует c с нуля, создает и сохраняет две папки в кэш действий.

Во второй сборке обнаруживается новый кэш, и gatsby создает его успешно, но затем кэш не обновляется.

Похоже, я изо всех сил пытаюсь понять, как разрушить кэш, используя имя key.

Я так понимаю, это должно работать, пожалуйста, исправьте меня, если я ошибаюсь.

enter image description here

1 Ответ

0 голосов
/ 14 апреля 2020

Кэш не будет автоматически обновляться, если кэш будет достигнут. Ваш основной ключ кеша должен содержать хэши файлов, которые являются уникальными для новой сборки. Если вашей сборке Gatsby необходимо вызвать некоторый удаленный API для получения данных, вы не можете использовать официальное действие кеша.

Вы можете попробовать этот форк, который всегда сохраняет кеш: https://github.com/marketplace/actions/always-cache

Но используйте его на свой страх и риск.

...