npmAuthenticate@0 - tâche npm authenticate (pour les exécuteurs de tâches) v0
Utilisez cette tâche pour fournir des npm
informations d’identification à un .npmrc
fichier dans votre référentiel pour l’étendue de la build. Cela permet à npm
, ainsi qu’aux exécuteurs de tâches tels que npm
gulp et Grunt, de s’authentifier auprès de registres privés.
Syntaxe
# npm authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
inputs:
workingFile: # string. Required. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this organization/collection.
# npm Authenticate (for task runners) v0
# Don't use this task if you're also using the npm task. Provides npm credentials to an .npmrc file in your repository for the scope of the build. This enables npm task runners like Gulp and Grunt to authenticate with private registries.
- task: npmAuthenticate@0
inputs:
#workingFile: # string. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this account/collection.
Entrées
workingFile
- Fichier .npmrc à authentifier
string
. Obligatoire.
Chemin d’accès au .npmrc
fichier qui spécifie les registres avec lesquels vous souhaitez travailler. Sélectionnez le fichier, et non le dossier, tel que /packages/mypackage.npmrc
.
workingFile
- Fichier .npmrc à authentifier
string
.
Chemin d’accès au .npmrc
fichier qui spécifie les registres avec lesquels vous souhaitez travailler. Sélectionnez le fichier, et non le dossier, tel que /packages/mypackage.npmrc
.
customEndpoint
- Informations d’identification pour les registres en dehors de cette organisation/collection
string
.
Liste séparée par des virgules des noms de connexion de service npm pour les registres en dehors de cette organisation ou de cette collection. Le fichier spécifié .npmrc
doit contenir des entrées de Registre correspondant aux connexions de service. Si vous avez uniquement besoin de registres dans cette organisation ou collection, laissez ce champ vide. Les informations d’identification de la build sont utilisées automatiquement.
customEndpoint
- Informations d’identification pour les registres en dehors de ce compte/collection
string
.
Liste séparée par des virgules des noms de connexion de service npm pour les registres en dehors de cette organisation ou de cette collection. Le fichier spécifié .npmrc
doit contenir des entrées de Registre correspondant aux connexions de service. Si vous avez uniquement besoin de registres dans cette organisation ou collection, laissez ce champ vide. Les informations d’identification de la build sont utilisées automatiquement.
Options de contrôle des tâches
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Aucun.
Notes
Utilisez cette tâche pour fournir des npm
informations d’identification à un .npmrc
fichier dans votre référentiel pour l’étendue de la build. Cela permet à npm
, ainsi qu’aux exécuteurs de tâches tels que npm
gulp et Grunt, de s’authentifier auprès de registres privés.
- Comment fonctionne cette tâche ?
- Quand dans mon pipeline dois-je exécuter cette tâche ?
- J’ai plusieurs projets npm. Dois-je exécuter cette tâche pour chaque fichier .npmrc ?
- Mon agent se trouve derrière un proxy web. Sera-t-il
npmAuthenticate
configurénpm/gulp/Grunt
pour utiliser mon proxy ? - Mon pipeline doit accéder à un flux dans un autre projet
Comment fonctionne cette tâche ?
Cette tâche recherche les entrées du Registre dans le fichier spécifié .npmrc
, puis ajoute les détails d’authentification des registres découverts à la fin du fichier. Pour tous les registres de l’organisation/collection actuelle, les informations d’identification de la build sont utilisées. Pour les registres d’une autre organisation ou hébergés par un tiers, les URI du Registre seront comparés aux URI des connexions de service npm spécifiées par l’entrée customEndpoint
, et les informations d’identification correspondantes seront utilisées. Le .npmrc
fichier est rétabli à son état d’origine à la fin de l’exécution du pipeline.
Quand dans mon pipeline dois-je exécuter cette tâche ?
Cette tâche doit s’exécuter avant d’utiliser npm
, ou un exécuteur de npm
tâches, pour installer ou envoyer (push) des packages vers un dépôt npm authentifié tel qu’Azure Artifacts. Il n’existe aucune autre exigence de classement.
J’ai plusieurs projets npm. Dois-je exécuter cette tâche pour chaque fichier .npmrc ?
Cette tâche n’ajoute les détails d’authentification qu’à un .npmrc
seul fichier à la fois. Si vous avez besoin d’une authentification pour plusieurs .npmrc
fichiers, vous pouvez exécuter la tâche plusieurs fois, une fois pour chaque .npmrc
fichier. Vous pouvez également créer un .npmrc
fichier qui spécifie tous les registres utilisés par vos projets, en cours d’exécution npmAuthenticate
sur ce .npmrc
fichier, puis définir une variable d’environnement pour désigner ce .npmrc
fichier comme fichier de configuration npm par utilisateur.
- task: npmAuthenticate@0
inputs:
workingFile: $(agent.tempdirectory)/.npmrc
- script: echo ##vso[task.setvariable variable=NPM_CONFIG_USERCONFIG]$(agent.tempdirectory)/.npmrc
- script: npm ci
workingDirectory: project1
- script: npm ci
workingDirectory: project2
Mon agent se trouve derrière un proxy web. Sera-t-il npmAuthenticate
configuré npm/gulp/Grunt
pour utiliser mon proxy ?
La réponse est négative. Bien que cette tâche elle-même fonctionne derrière un proxy web que votre agent a été configuré pour utiliser, elle ne configure npm
pas ou npm
exécuteurs de tâches pour utiliser le proxy.
Pour ce faire, vous pouvez :
Définissez les variables
http_proxy
/https_proxy
d’environnement et éventuellementno_proxy
vos paramètres de proxy. Pour plus d’informations, consultez configuration npm . Notez qu’il s’agit de variables couramment utilisées que d’autresnpm
outils (par exemple, curl) peuvent également utiliser.Ajoutez les paramètres de proxy à la configuration npm, soit manuellement, à l’aide du jeu de configuration npm, soit en définissant des variables d’environnement précédées
NPM_CONFIG_
de .Attention :
npm
Les exécuteurs de tâches peuvent ne pas être compatibles avec toutes les méthodes de configuration de proxy prises en charge parnpm
.Spécifiez le proxy avec un indicateur de ligne de commande lors de l’appel
npm
de .- script: npm ci --https-proxy $(agent.proxyurl)
Si votre proxy nécessite une authentification, vous devrez peut-être ajouter une étape de génération supplémentaire pour construire un URI de proxy authentifié.
- script: node -e "let u = url.parse(`$(agent.proxyurl)`); u.auth = `$(agent.proxyusername):$(agent.proxypassword)`; console.log(`##vso[task.setvariable variable=proxyAuthUri;issecret=true]` + url.format(u))"
- script: npm publish --https-proxy $(proxyAuthUri)
Mon pipeline doit accéder à un flux dans un autre projet
Si le pipeline s’exécute dans un projet différent du projet hébergeant le flux, vous devez configurer l’autre projet pour accorder un accès en lecture/écriture au service de build. Pour plus d’informations, consultez Autorisations de package dans Azure Pipelines .
Exemples
- Restaurer
npm
des packages pour votre projet à partir d’un registre au sein de votre organisation - Restaurer et publier
npm
des packages en dehors de votre organisation - npmrc
- npm
Restaurer npm
des packages pour votre projet à partir d’un registre au sein de votre organisation
Si les seuls registres authentifiés que vous utilisez sont des registres Azure Artifacts dans votre organisation, il vous suffit de spécifier le chemin d’accès à un .npmrc
fichier de la npmAuthenticate
tâche.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/npm/registry/
always-auth=true
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
- script: npm ci
# ...
- script: npm publish
Restaurer et publier npm
des packages en dehors de votre organisation
Si votre .npmrc
contient des registres Azure Artifacts d’une autre organisation ou si vous utilisez un dépôt de packages authentifié tiers, vous devez configurer les connexions de service npm et les spécifier dans l’entrée customEndpoint
.
Les registres au sein de votre organisation Azure Artifacts seront également authentifiés automatiquement.
.npmrc
registry=https://pkgs.dev.azure.com/{organization}/{project}/_packaging/{feed}/npm/registry/
@{scope}:registry=https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
@{otherscope}:registry=https://{thirdPartyRepository}/npm/registry/
always-auth=true
L’URL du Registre pointant vers un flux Azure Artifacts peut contenir ou non le projet. Une URL pour un flux de projet doit contenir le projet, et l’URL d’un flux d’étendue d’organisation ne doit pas contenir le projet. En savoir plus sur les flux délimités par le projet.
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection
- script: npm ci
# ...
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
OtherOrganizationNpmConnection
et ThirdPartyRepositoryNpmConnection
sont les noms des connexions de service npm qui ont été configurées et autorisées à être utilisées dans votre pipeline, et ont des URL qui correspondent à celles du fichier spécifié .npmrc
.
Spécifications
Condition requise | Description |
---|---|
Types de pipelines | YAML, build classique, version classique |
S’exécute sur | Agent, DeploymentGroup |
Demandes | None |
Capabilities | Cette tâche ne répond à aucune demande pour les tâches suivantes dans le travail. |
Restrictions de commandes | Quelconque |
Variables settables | Quelconque |
Version de l’agent | 2.115.0 ou version ultérieure |
Catégorie de la tâche | Package |