Files
install-node-packages/action.yml
2024-12-22 13:13:58 +01:00

49 lines
1.3 KiB
YAML

name: Install node packages
description: An action to install node packages, no matter the package manager
author: Skydust
# Define your inputs here.
inputs:
path:
description: The package path
required: false
default: "."
options:
description: Package manager options
required: false
default: ""
runs:
using: composite
steps:
- name: Installing package manager
shell: sh
run: |
cd "${{ inputs.path }}"
if ! corepack install; then
log_info "$(blue)Finding out the package manager used"
PKG_MANAGER="npm"
if [ -f "./package-lock.json" ]; then
PKG_MANAGER="npm"
elif [ -f "./pnpm-lock.yaml" ]; then
PKG_MANAGER="pnpm"
elif [ -f "./.yarnrc.yml" ]; then
PKG_MANAGER="yarn"
elif [ -f "./yarn.lock" ]; then
PKG_MANAGER="yarn@1"
fi
log_info "$(blue)Using $PKG_MANAGER"
corepack use "$PKG_MANAGER"
fi
env
- name: Installing packages
shell: sh
run: |
cd "${{ inputs.path }}"
PKG_MANAGER="$(sed -nE 's/.*"packageManager": *"([^@"]+).*/\1/p' package.json)"
log_info "$(blue)Installing with ${PKG_MANAGER}"
corepack "${PKG_MANAGER}" install ${{ inputs.options }}