Skip to content

Commit

Permalink
extend setup-node with proper yarn 3 caching
Browse files Browse the repository at this point in the history
  • Loading branch information
astrowq committed Jun 2, 2023
1 parent 0540906 commit 56f62e5
Showing 1 changed file with 52 additions and 8 deletions.
60 changes: 52 additions & 8 deletions action.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,55 @@
name: 'Your name here'
description: 'Provide a description here'
author: 'Your name or organization here'
name: 'Setup Node.js and Yarn'
inputs:
milliseconds: # change this
required: true
description: 'input description here'
default: 'default value if applicable'
always-auth:
description: 'Set always-auth in npmrc.'
default: 'false'
node-version:
description: 'Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0.'
node-version-file:
description: 'File containing the version Spec of the version to use. Examples: .nvmrc, .node-version, .tool-versions.'
architecture:
description: 'Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default.'
check-latest:
description: 'Set this option if you want the action to check for the latest available version that satisfies the version spec.'
default: false
registry-url:
description: 'Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, and set up auth to read in from env.NODE_AUTH_TOKEN.'
scope:
description: 'Optional scope for authenticating against scoped registries. Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/).'
token:
description: Used to pull node distributions from node-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting.
default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
working-directory:
description: 'The working directory to run the action in.'
default: '.'
outputs:
cache-hit:
description: 'A boolean value to indicate if a cache was hit.'
node-version:
description: 'The installed node version.'
runs:
using: 'node16'
main: 'dist/index.js'
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{inputs.node-version}}
node-version-file: ${{inputs.node-version-file}}
check-latest: ${{inputs.check-latest}}
architecture: ${{inputs.architecture}}
always-auth: ${{inputs.always-auth}}
registry-url: ${{inputs.registry-url}}
scope: ${{inputs.scope}}
token: ${{inputs.token}}

- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
shell: bash
working-directory: ${{inputs.working-directory}}

- name: Restore yarn cache
uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: yarn-cache-folder-${{ hashFiles('**/yarn.lock', '.yarnrc.yml') }}
restore-keys: yarn-cache-folder-

0 comments on commit 56f62e5

Please sign in to comment.