From bc821d0c12b430b965fdc132e1a32a346ce876d4 Mon Sep 17 00:00:00 2001 From: Josh Gross Date: Thu, 7 Nov 2019 21:04:46 -0500 Subject: [PATCH] Remove recommendation to cache node_modules (#69) * Update npm caching examples * Fix output name * Remove extra details tag --- README.md | 23 ++++++++++------------- examples.md | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index e65cea6..e8d048b 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Create a workflow `.yml` file in your repositories `.github/workflows` directory ### Example workflow ```yaml -name: Example Caching with npm +name: Caching Primes on: push @@ -39,22 +39,19 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Cache node modules + - name: Cache Primes + id: cache-primes uses: actions/cache@v1 with: - path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- + path: prime-numbers + key: ${{ runner.os }}-primes - - name: Install Dependencies - run: npm install + - name: Generate Prime Numbers + if: steps.cache-primes.outputs.cache-hit != 'true' + run: /generate-primes.sh -d prime-numbers - - name: Build - run: npm run build - - - name: Test - run: npm run test + - name: Use Prime Numbers + run: /primes.sh -d prime-numbers ``` ## Ecosystem Examples diff --git a/examples.md b/examples.md index 5a3c93f..2d5a8a7 100644 --- a/examples.md +++ b/examples.md @@ -70,10 +70,42 @@ Using [NuGet lock files](https://docs.microsoft.com/nuget/consume-packages/packa ## Node - npm +For npm, cache files are stored in `~/.npm` on Posix, or `%AppData%/npm-cache` on Windows. See https://docs.npmjs.com/cli/cache#cache + +>Note: It is not recommended to cache `node_modules`, as it can break across Node versions and won't work with `npm ci` + +### macOS and Ubuntu + ```yaml - uses: actions/cache@v1 with: - path: node_modules + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- +``` + +### Windows + +```yaml +- uses: actions/cache@v1 + with: + path: ~\AppData\Roaming\npm-cache + key: ${{ runner.os }}-node-${{ hashFiles('**\package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- +``` + +### Using multiple systems and `npm config` + +```yaml +- name: Get npm cache directory + id: npm-cache + run: | + echo "::set-output name=dir::$(npm config get cache)" +- uses: actions/cache@v1 + with: + path: ${{ steps.npm-cache.outputs.dir }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node-