🐙
Github Actions で node module をキャッシュする
概要
Github Actions で node module をキャッシュします。
グローバルパッケージをキャッシュする場合は Caching global packages data を参照してください。
Workflow
job setup
で node module をキャッシュして、他の job はキャッシュした node module を使用します。
.github/workflows/reviewdog.yaml
name: reviewdog
on:
pull_request:
branches:
- main
env:
NODE_VERSION: '14.15.0'
jobs:
setup:
name: setup
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- name: cache node modules
id: cache-node-modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: install dpendencies
run: npm ci --ignore-scripts
build:
name: build
runs-on: ubuntu-20.04
needs: setup
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- name: restore node modules
id: cache-node-modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: check build
run: npm run build
eslint:
name: eslint
runs-on: ubuntu-20.04
needs: setup
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- name: restore node modules
id: cache-node-modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: check apps/app-web
uses: reviewdog/action-eslint@v1
with:
level: error
eslint_flags: '--quiet apps/app-web/src/**/*.{ts,js}'
reporter: github-pr-check
filter_mode: nofilter
stylelint:
name: stylelint
runs-on: ubuntu-20.04
needs: setup
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
- name: restore node modules
id: cache-node-modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('package-lock.json') }}
- name: check app-web
uses: reviewdog/action-stylelint@v1
with:
level: error
stylelint_input: 'apps/app-web/**/*.scss'
stylelint_config: 'apps/app-web/.stylelintrc.json'
実行結果
Discussion