Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Usare questa attività per fornire le credenziali npm a un file .npmrc nel repository per l'ambito della compilazione. In questo modo npm, oltre a npm strumenti di esecuzione delle attività come gulp e Grunt, possono eseguire l'autenticazione con registri privati.
Sintassi
# 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:
#azureDevOpsServiceConnection: # string. Alias: workloadIdentityServiceConnection. 'Azure DevOps' Service Connection.
#feedUrl: # string. Azure Artifacts URL.
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. Required. .npmrc file to authenticate.
#customEndpoint: # string. Credentials for registries outside this organization/collection.
Ingressi dati
azureDevOpsServiceConnection
-
'Azure DevOps' Connessione di Servizio
Alias di input: workloadIdentityServiceConnection.
string.
Se questo è impostato, feedUrl è richiesto. Le connessioni di servizio per organizzazioni/collezioni esterne e endpoint personalizzati non sono compatibili.
feedUrl
-
Azure Artifacts URL
string.
Se questo è impostato, workloadIdentityServiceConnection è richiesto. Non compatibile con customEndpoint. L'URL del feed dovrebbe essere nel npm formato registro: https://pkgs.dev.azure.com/{ORG_NAME}/{PROJECT}/_packaging/{FEED_NAME}/npm/registry/.
workingFile
-
file npmrc per autenticare
string. Obbligatorio.
Percorso del file di .npmrc che specifica i registri con cui si desidera lavorare. Selezionare il file, non la cartella, ad esempio /packages/mypackage.npmrc.
customEndpoint
-
Credenziali per registri esterni a questa organizzazione/raccolta
string.
Elenco delimitato da virgole di connessione al servizio npm nomi per i registri esterni all'organizzazione o alla raccolta. Il file di .npmrc specificato deve contenere voci del Registro di sistema corrispondenti alle connessioni al servizio. Se sono necessari solo registri nell'organizzazione o nella raccolta, lasciare vuoto questo campo. Le credenziali della compilazione vengono usate automaticamente.
Opzioni di controllo delle attività
Tutte le attività dispongono di opzioni di controllo oltre ai relativi input attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.
Variabili di output
Nessuno.
Osservazioni:
Usare questa attività per fornire le credenziali npm a un file .npmrc nel repository per l'ambito della compilazione. In questo modo npm, oltre a npm strumenti di esecuzione delle attività come gulp e Grunt, possono eseguire l'autenticazione con registri privati.
- Come funziona questa attività?
- Quando è necessario eseguire questa attività nella pipeline?
- Ho più progetti npm. È necessario eseguire questa attività per ogni file con estensione npmrc?
- L'agente si trova dietro un proxy Web. Verrà
npmAuthenticateconfiguratanpm/gulp/Gruntper l'uso del proxy? - la pipeline personale deve accedere a un feed in un altro progetto
Come funziona questa attività?
Questa attività cerca nel file di .npmrc specificato le voci del Registro di sistema, quindi aggiunge i dettagli di autenticazione per i registri individuati alla fine del file. Per tutti i registri nell'organizzazione/raccolta corrente, vengono usate le credenziali della compilazione. Per i registri in un'organizzazione diversa o ospitata da terze parti, gli URI del Registro di sistema verranno confrontati con gli URI delle connessioni del servizio npm specificate dall'input customEndpoint e verranno usate le credenziali corrispondenti. Il file .npmrc verrà ripristinato allo stato originale alla fine dell'esecuzione della pipeline.
Quando nella pipeline è necessario eseguire questa attività?
Questo compito deve essere eseguito prima che tu utilizzi npm, o un task runner npm, per installare o spingere i pacchetti su un repository npm autenticato come Azure Artifacts. Non esistono altri requisiti di ordinamento.
Ho più progetti npm. È necessario eseguire questa attività per ogni file con estensione npmrc?
Questa attività aggiungerà solo i dettagli di autenticazione a un file .npmrc alla volta. Se è necessaria l'autenticazione per più file di .npmrc, è possibile eseguire l'attività più volte, una volta per ogni file .npmrc. In alternativa, prendere in considerazione la creazione di un file di .npmrc che specifica tutti i registri usati dai progetti, l'esecuzione di npmAuthenticate in questo file .npmrc e quindi l'impostazione di una variabile di ambiente per designare questo file .npmrc come file di configurazione npm per utente.
- 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
L'agente si trova dietro un proxy Web. Verrà npmAuthenticate configurata npm/gulp/Grunt per l'uso del proxy?
La risposta è no. Anche se questa attività funzionerà dietro un proxy Web l'agente è stato configurato per l'uso di, non configura npm o npm strumenti di esecuzione attività per l'uso del proxy.
A tale scopo, è possibile:
Impostare le variabili di ambiente
http_proxy/https_proxye, facoltativamente,no_proxysulle impostazioni proxy. Per informazioni dettagliate, vedere npm config. Si noti che si tratta di variabili di uso comune che possono essere usate anche da altri strumenti nonnpm(ad esempio curl).Aggiungere le impostazioni proxy alla configurazione di npm, manualmente, usando npm config seto impostando variabili di ambiente precedute da
NPM_CONFIG_.Importante
npmutilità di esecuzione delle attività potrebbe non essere compatibile con tutti i metodi di configurazione proxy supportati danpm.Specificare il proxy con un flag della riga di comando quando si chiama
npm.- script: npm ci --https-proxy $(agent.proxyurl)
Se il proxy richiede l'autenticazione, potrebbe essere necessario aggiungere un passaggio di compilazione aggiuntivo per costruire un URI proxy autenticato.
- 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)
La pipeline deve accedere a un feed in un progetto diverso
Se la pipeline è in esecuzione in un progetto diverso da quello che ospita il feed, è necessario configurare l'altro progetto per concedere l'accesso in lettura/scrittura al servizio di compilazione. Vedi i permessi Package in Azure Pipelines per maggiori dettagli.
Esempi
-
Ripristinare pacchetti
npmper il progetto da un registro all'interno dell'organizzazione -
Ripristinare e pubblicare pacchetti di
npmall'esterno dell'organizzazione - npmrc
- npm
Ripristinare i pacchetti npm per il progetto da un registro all'interno dell'organizzazione
Se gli unici registri autenticati che usi sono Azure Artifacts registri della tua organizzazione, devi solo specificare il percorso verso un file .npmrc al compito npmAuthenticate.
.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
Ripristinare e pubblicare pacchetti npm all'esterno dell'organizzazione
Se il tuo .npmrc contiene Azure Artifacts registri di un'altra organizzazione o utilizza un repository di pacchetti autenticati di terze parti, dovrai configurare npm service connections e specificarle nell'input customEndpoint.
Anche i registri all'interno della tua organizzazione Azure Artifacts saranno automaticamente autenticati.
.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 del registro che punta a un feed di Azure Artifacts può contenere o meno il progetto. Un URL per un feed con ambito progetto deve contenere il progetto e l'URL per un feed con ambito organizzazione non deve contenere il progetto. Altre informazioni sui feed con ambito progetto.
npm
- task: npmAuthenticate@0
inputs:
workingFile: .npmrc
customEndpoint: OtherOrganizationNpmConnection, ThirdPartyRepositoryNpmConnection # Name of your service connection
- script: npm ci
- script: npm publish -registry https://pkgs.dev.azure.com/{otherorganization}/_packaging/{feed}/npm/registry/
OtherOrganizationNpmConnection e ThirdPartyRepositoryNpmConnection sono i nomi delle connessioni del servizio npm configurate e autorizzate per l'uso nella pipeline e hanno URL corrispondenti a quelli nel file di .npmrc specificato.
Requisiti
| Requisito | Descrizione |
|---|---|
| Tipi di pipeline | YAML, build classica, versione classica |
| Viene eseguito in | Agente, DeploymentGroup |
| richieste | Nessuno |
| funzionalità di | Questa attività non soddisfa alcuna richiesta di attività successive nel processo. |
| restrizioni dei comandi | Qualunque |
| variabili impostabili | Qualunque |
| Versione dell'agente | 2.115.0 o versione successiva |
| Categoria attività | Pacchetto |