Cette action fournit les fonctionnalités suivantes pour les utilisateurs de GitHub Actions :
Téléchargement et mise en cache optionnels de la distribution de la version Node.js demandée, et ajout de celle-ci au PATH
Mise en cache facultative des dépendances npm/yarn/pnpm
Enregistrement des correspondants de problèmes pour la sortie d'erreur
Configuration de l'authentification pour GPR ou npm
Voir action.yml
- utilise : actions/setup-node@v4
with :# Version Spec de la version à utiliser dans la notation SemVer.# Il admet également des alias tels que lts/*, les dernières versions, nightly et canary# Exemples : 12.x, 10.15.1, >=10.15.0, lts/ Hydrogen, 16-nightly, last, nodenode-version : ''# Fichier contenant la version Spec de la version à utiliser. Exemples : package.json, .nvmrc, .node-version, .tool-versions.# Si node-version et node-version-file sont tous deux fournis, l'action utilisera la version de node-version. node-version-file: ''# Définissez cette option si vous souhaitez que l'action vérifie la dernière version disponible # qui satisfait aux spécifications de version.# Cela n'affectera que les versions lts Nodejs (12.x, >=10.15. 0, lts/hydrogène). # Par défaut : falsecheck-latest : false# Architecture cible à utiliser par Node. Exemples : x86, x64. Utilisera l'architecture du système par défaut.# Par défaut : '. L'action utilise l'architecture système par défaut : ''# Utilisé pour extraire les distributions de nœuds depuis https://github.com/actions/node-versions. # Puisqu'il existe une valeur par défaut, celle-ci n'est généralement pas fournie par l'utilisateur. # Lors de l'exécution de cette action sur github.com, la valeur par défaut est suffisante. # Lors de l'exécution sur GHES, vous pouvez transmettre un jeton d'accès personnel pour github.com si vous rencontrez une limitation de débit.## Nous vous recommandons d'utiliser un compte de service avec le moins d'autorisations nécessaires. Aussi# lors de la génération d'un nouveau PAT, sélectionnez le moins de portées nécessaire.## [En savoir plus sur la création et l'utilisation de secrets chiffrés](https://help.github.com/en/actions/automating-your-workflow-with-github -actions/création-et-utilisation-de-secrets-chiffrés)## Par défaut : ${{ github.server_url == 'https://github.com' && github.token || '' }}jeton : ''# Utilisé pour spécifier un gestionnaire de packages pour la mise en cache dans le répertoire par défaut. Valeurs prises en charge : npm, fil, pnpm.# Le gestionnaire de packages doit être pré-installé# Par défaut : ''cache : ''# Utilisé pour spécifier le chemin d'accès à un fichier de dépendance : package-lock.json, fil.lock, etc. # Il générera un hachage à partir du fichier cible pour la clé primaire. Cela ne fonctionne que si le cache est spécifié. # Prend en charge les caractères génériques ou une liste de noms de fichiers pour la mise en cache de plusieurs dépendances. # Par défaut : '' cache-dependency-path : '' # Registre facultatif à configurer pour l'authentification. Définira le registre dans un fichier .npmrc et .yarnrc au niveau du projet, # et configurera l'authentification pour lire à partir d'env.NODE_AUTH_TOKEN.# Par défaut : ''registry-url: ''# Portée facultative pour l'authentification par rapport aux registres étendus. # Reviendra au propriétaire du référentiel lors de l'utilisation du registre des packages GitHub (https://npm.pkg.github.com/).# Par défaut : ''scope : ''# Définir l'option Always-Auth dans le fichier npmrc.# Par défaut : ''toujours-auth:'Basique:
mesures: - utilise : actions/checkout@v4- utilise : actions/setup-node@v4 avec : version de nœud : 18 - exécution : npm ci - exécution : test npm
L’entrée node-version est facultative. Si elle n'est pas fournie, la version du nœud de PATH sera utilisée. Cependant, il est recommandé de toujours spécifier la version de Node.js et de ne pas se fier à celle du système.
L'action vérifiera d'abord le cache local pour une correspondance semver. Si vous ne parvenez pas à trouver une version spécifique dans le cache, l'action tentera de télécharger une version de Node.js. Il extraira les versions LTS des versions de nœud et, en cas d'échec ou d'échec, reviendra au comportement précédent de téléchargement directement à partir de la distribution du nœud.
Pour plus d'informations sur les versions mises en cache localement de Node.js sur les exécuteurs hébergés par GitHub, consultez GitHub Actions Runner Images.
L'entrée node-version prend en charge la spécification de gestion des versions sémantiques. Pour des exemples plus détaillés, veuillez vous référer à la documentation du package semver.
Exemples :
Versions majeures : 18 , 20
Versions plus spécifiques : 10.15 , 16.15.1 , 18.4.0
Syntaxe NVM LTS : lts/erbium , lts/fermium , lts/* , lts/-n
Dernière version : * ou latest / current / node
Remarque : comme les autres valeurs, * obtiendra la dernière version de Node.js mise en cache localement, ou la dernière version d'actions/node-versions, en fonction de la check-latest .
current / latest / node résout toujours la dernière version de distribution. Cette version est ensuite téléchargée depuis actions/node-versions si possible, ou directement depuis Node.js sinon. Comme il ne sera pas toujours mis en cache, il est possible d'atteindre la limite de débit lors du téléchargement à partir de la distribution.
Il est toujours recommandé de valider le fichier de verrouillage de votre gestionnaire de packages pour des raisons de sécurité et de performances. Pour plus d'informations, consultez la section « Utilisation des fichiers de verrouillage » du guide d'utilisation avancée.
L'action dispose d'une fonctionnalité intégrée pour la mise en cache et la restauration des dépendances. Il utilise des actions/cache sous le capot pour mettre en cache les données des packages globaux mais nécessite moins de paramètres de configuration. Les gestionnaires de packages pris en charge sont npm , yarn , pnpm (v6.10+). L'entrée cache est facultative et la mise en cache est désactivée par défaut.
L'action recherche par défaut le fichier de dépendance ( package-lock.json , npm-shrinkwrap.json ou yarn.lock ) dans la racine du référentiel et utilise son hachage dans le cadre de la clé de cache. Utilisez cache-dependency-path dans les cas où plusieurs fichiers de dépendance sont utilisés ou se trouvent dans des sous-répertoires différents.
Remarque : L'action ne met pas en cache node_modules
Consultez les exemples d'utilisation du cache pour l'entrée yarn / pnpm et cache-dependency-path dans le guide d'utilisation avancée.
Mise en cache des dépendances npm :
mesures: - utilise : actions/checkout@v4- utilise : actions/setup-node@v4 avec : version de nœud : 20cache : 'npm'- exécuter : npm ci- exécuter : npm test
Mise en cache des dépendances npm dans monorepos :
mesures: - utilise : actions/checkout@v4- utilise : actions/setup-node@v4 avec : version de nœud : 20cache : 'npm'cache-dependency-path : sous-répertoire/package-lock.json- run : npm ci- run : npm test
jobs : build:runs-on : ubuntu-lateststrategy : matrice:node : [ 14, 16, 18 ]nom : Node ${{ matrice.node }} exemples d'étapes :
- utilise : actions/checkout@v4 - nom : nœuds de configuration : actions/setup-node@v4with : node-version : ${{ matrice.node }} - exécuter : npm ci - exécuter : npm testsetup-node sur GHES setup-node est préinstallé sur l’appliance avec GHES si les actions sont activées. Lors du téléchargement dynamique de distributions Nodejs, setup-node télécharge les distributions à partir actions/node-versions sur github.com (en dehors de l'appliance). Ces appels aux actions/node-versions sont effectués via des requêtes non authentifiées, limitées à 60 requêtes par heure et par IP. Si d'autres requêtes sont effectuées dans le délai imparti, vous commencerez à voir des erreurs de limite de débit pendant le téléchargement qui ressemblent à : ##[error]API rate limit exceeded for... . Après cette erreur, l'action tentera de télécharger les versions directement depuis le site officiel, mais elle peut également avoir une limite de débit, il est donc préférable de mettre un jeton.
Pour obtenir une limite de débit plus élevée, vous pouvez générer un jeton d'accès personnel sur github.com et le transmettre comme entrée token pour l'action :
utilise : actions/setup-node@v4with : jeton : ${{ secrets.GH_DOTCOM_TOKEN }}
version du nœud : 20Si le coureur ne peut pas accéder à github.com, toutes les versions de Nodejs demandées lors de l'exécution d'un workflow doivent provenir du cache d'outils du coureur. Voir « Configuration du cache d'outils sur les coureurs auto-hébergés sans accès à Internet » pour plus d'informations.
Vérifier la dernière version
Utilisation d'un fichier de version de nœud
Utiliser différentes architectures
Utilisation des versions Canary v8
Utiliser les versions nocturnes
Utiliser les versions rc
Mise en cache des données des packages
Utilisation de plusieurs systèmes d'exploitation et architectures
Publication sur npmjs et GPR avec npm
Publication sur npmjs et GPR avec du fil
Utiliser des packages privés
Les scripts et la documentation de ce projet sont publiés sous la licence MIT
Les contributions sont les bienvenues ! Voir le Guide du contributeur
Soyez gentil. Voir notre code de conduite