如何使用GitHub Actions在构建之间缓存GatsbyJS .cache和公用文件夹

时间:2020-04-07 11:24:45

标签: gatsby github-actions

我正在尝试通过GitHub Actions使用actions/cache任务在我们的GatsbyJS构建之间持久保存缓存的数据。

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和public,将这两个文件夹构建并保存到操作缓存中。

在第二个构建中,找到新的缓存,并且gatsby成功构建,但是缓存未更新。

似乎我在努力了解如何使用key名称破坏缓存。

这是我理解它应该起作用的方式,如果我错了,请纠正我。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果命中缓存,缓存将不会自动更新。您的主缓存键必须包含对于新版本而言唯一的文件哈希。如果您的Gatsby版本需要调用某个远程API来获取数据,则您不能使用官方的缓存操作。

您可以尝试使用此总是可保存高速缓存的fork:https://github.com/marketplace/actions/always-cache

但是使用它需要您自担风险。