y-ohgi's blog

TODO: ここになにかかく

GitHub Actionsでactions/setup-nodeのみでcacheを行う

TL;DR

  • GitHub Actionsでnodeのキャッシュを行う
  • actions/cache を使用せずに actions/setup-node のみで完結させる

概要

なんとなく actions/setup-node にnode v22が気てないか気になって見てみたらcache機構が備わっていたので試したら動いた次第

Version

How to

GitHub Actionsのyaml

.github/workflows/cache.yml

name: Caching with npm

on:
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm' # cacheにパッケージマネージャーを指定することでキャッシュしてくれる。

      - run: npm ci

      - run: npm list

所感

厳密なcacheをしたい場合は actions/cache の方が有利なように思えるものの、カジュアルにキャッシュするだけなら有用に感じました。
GitHub Actionsのキャッシュは使用されていない場合自動削除されますし、同一のブランチでActionsを何度も回したりpackageの更新が頻発しない場合は選択肢の一つかなと思います。