From fb86cbf3602dbb739392ef1c5ea3cd590c6d85b4 Mon Sep 17 00:00:00 2001 From: Deepak Dahiya <59823596+t-dedah@users.noreply.github.com> Date: Wed, 7 Dec 2022 14:55:01 +0530 Subject: [PATCH] Updated node example (#1008) * Updated node example * Update examples.md --- examples.md | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/examples.md b/examples.md index 5a38585..fbaf32d 100644 --- a/examples.md +++ b/examples.md @@ -309,14 +309,29 @@ We cache the elements of the Cabal store separately, as the entirety of `~/.caba For npm, cache files are stored in `~/.npm` on Posix, or `~\AppData\npm-cache` on Windows, but it's possible to use `npm config get cache` to find the path on any platform. See [the npm docs](https://docs.npmjs.com/cli/cache#cache) for more details. If using `npm config` to retrieve the cache directory, ensure you run [actions/setup-node](https://github.com/actions/setup-node) first to ensure your `npm` version is correct. +After [deprecation](https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/) of save-state and set-output commands, the correct way to set output is using `${GITHUB_OUTPUT}`. For linux, we can use `${GITHUB_OUTPUT}` whereas for windows we need to use `${env:GITHUB_OUTPUT}` due to two different default shells in these two different OS ie `bash` and `pwsh` respectively. >Note: It is not recommended to cache `node_modules`, as it can break across Node versions and won't work with `npm ci` +### **Get npm cache directory using same shell** +### Bash shell ```yaml - name: Get npm cache directory - id: npm-cache-dir - run: | - echo "::set-output name=dir::$(npm config get cache)" + id: npm-cache + shell: bash + run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} +``` + +### PWSH shell +```yaml +- name: Get npm cache directory + id: npm-cache + shell: pwsh + run: echo "dir=$(npm config get cache)" >> ${env:GITHUB_OUTPUT} +``` +`Get npm cache directory` step can then be used with `actions/cache` as shown below + +```yaml - uses: actions/cache@v3 id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true' with: