Partilhar via


npmAuthenticate@0 - npm autenticar (para corredores de tarefas) v0 tarefa

Utilize esta tarefa para fornecer npm credenciais a um .npmrc ficheiro no seu repositório para o âmbito da construção. Isto permite npm, assim como npm corredores de tarefas como gole e Grunt, autenticar com registos privados.

Syntax

# 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.

Entradas

workingFile - .npmrc arquivo para autenticar
string. Obrigatório.

O caminho para o .npmrc ficheiro que especifica os registos com os quais pretende trabalhar. Selecione o ficheiro, não a pasta, como /packages/mypackage.npmrc.


workingFile - .npmrc arquivo para autenticar
string.

O caminho para o .npmrc ficheiro que especifica os registos com os quais pretende trabalhar. Selecione o ficheiro, não a pasta, como /packages/mypackage.npmrc.


customEndpoint - Credenciais para registos fora desta organização/coleção
string.

A lista separada por vírgula de nomes de ligação de serviço npm para registos fora desta organização ou coleção. O ficheiro especificado .npmrc deve conter entradas de registo correspondentes às ligações de serviço. Se necessitar apenas de registos nesta organização ou recolha, deixe este em branco. As credenciais da construção são usadas automaticamente.


customEndpoint - Credenciais para registos fora desta conta/cobrança
string.

A lista separada por vírgula de nomes de ligação de serviço npm para registos fora desta organização ou coleção. O ficheiro especificado .npmrc deve conter entradas de registo correspondentes às ligações de serviço. Se necessitar apenas de registos nesta organização ou recolha, deixe este em branco. As credenciais da construção são usadas automaticamente.


Opções de controlo de tarefas

Todas as tarefas têm opções de controlo para além das entradas de tarefa. Para obter mais informações, consulte opções de Controlo e propriedades de tarefas comuns.

Variáveis de saída

Nenhum.

Observações

Utilize esta tarefa para fornecer npm credenciais a um .npmrc ficheiro no seu repositório para o âmbito da construção. Isto permite npm, assim como npm corredores de tarefas como gole e Grunt, autenticar com registos privados.

Como funciona esta tarefa?

Esta tarefa procura o ficheiro especificado .npmrc para entradas de registo e, em seguida, anexa os dados de autenticação dos registos descobertos até ao final do ficheiro. Para todos os registos na organização/recolha atual, são utilizadas as credenciais da construção. Para os registos numa organização diferente ou hospedados por terceiros, os URIs de registo serão comparados com os URIs das ligações de serviço npm especificadas pela customEndpoint entrada, e as credenciais correspondentes serão utilizadas. O .npmrc ficheiro será revertido para o seu estado original no final da execução do oleoduto.

Quando é que eu devo executar esta tarefa?

Esta tarefa deve ser executada antes de utilizar npm, ou um corredor de npm tarefas, para instalar ou empurrar pacotes para um repositório npm autenticado, como artefactos Azure. Não há outros requisitos de encomenda.

Tenho vários projetos npm. Preciso de executar esta tarefa para cada ficheiro .npmrc?

Esta tarefa apenas irá adicionar detalhes de autenticação a um .npmrc ficheiro de cada vez. Se necessitar de autenticação para vários .npmrc ficheiros, pode executar a tarefa várias vezes, uma para cada .npmrc ficheiro. Em alternativa, considere criar um .npmrc ficheiro que especifique todos os registos utilizados pelos seus projetos, executando npmAuthenticate este .npmrc ficheiro e, em seguida, definindo uma variável ambiental para designar este .npmrc ficheiro como o ficheiro de configuração npm por utilizador.

- 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

O meu agente está por detrás de um representante da web. Vai npmAuthenticate se preparar npm/gulp/Grunt para usar o meu representante?

A resposta é não. Embora esta tarefa em si funcione por trás de um representante web que o seu agente foi configurado para usar, não configura npm ou npm task runners para usar o proxy.

Para tal, pode:

  • Defina as variáveis ambientais http_proxy/https_proxy e opcionalmente no_proxy para as definições de procuração. Consulte npm config para mais detalhes. Note que estas são variáveis geralmente utilizadas que outras não-ferramentasnpm (por exemplo, caracóis) também podem usar.

  • Adicione as definições de procuração à configuração npm, quer manualmente, utilizando o conjunto npm config, ou definindo variáveis ambientais prefixadas com NPM_CONFIG_.

    Atenção:
    npm os corredores de tarefas podem não ser compatíveis com todos os métodos de configuração de procuração suportados por npm.

  • Especifique o representante com uma bandeira de linha de comando ao ligar npm.

    - script: npm ci --https-proxy $(agent.proxyurl)
    

Se o seu representante necessitar de autenticação, poderá ter de adicionar um passo de construção adicional para construir um URI de procuração autenticado.

- 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)

O meu Pipeline precisa de aceder a um feed num projeto diferente.

Se o oleoduto estiver a decorrer num projeto diferente do projeto que acolhe o feed, deve criar o outro projeto para conceder acesso à leitura/escrita ao serviço de construção. Consulte as permissões do Pacote em Azure Pipelines para mais detalhes.

Exemplos

Restaurar npm pacotes para o seu projeto a partir de um registo dentro da sua organização

Se os únicos registos autenticados que utiliza forem os registos de Artefactos Azure na sua organização, basta especificar o caminho para um .npmrc ficheiro para a npmAuthenticate tarefa.

.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

Restaurar e publicar npm pacotes fora da sua organização

Se o seu .npmrc contém registos de Artefactos Azure de uma organização diferente ou utilizar um repositório de pacotes autenticado por terceiros, terá de configurar ligações de serviço npm e especificá-las na customEndpoint entrada. Os registos dentro da sua organização de Artefactos Azure também serão automaticamente autenticados.

.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

O URL de registo que aponta para um feed Azure Artifacts pode ou não conter o projeto. Um URL para um feed de âmbito de projeto deve conter o projeto, e o URL para uma organização de alimentação alargada não deve conter o projeto. Saiba mais sobre feeds de âmbito de projeto.

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 e ThirdPartyRepositoryNpmConnection são os nomes das ligações de serviço npm que foram configuradas e autorizadas para utilização no seu pipeline, e têm URLs que correspondem às do ficheiro especificado .npmrc .

Requisitos

Requisito Description
Tipos de gasodutos YAML, Construção clássica, lançamento clássico
Continua Agente, Grupo de Implementação
Exigências Nenhuma
Capacidades Esta tarefa não satisfaz quaisquer pedidos para tarefas subsequentes no trabalho.
Restrições de comando Qualquer
Variáveis de configuração Qualquer
Versão do agente 2.115.0 ou maior
Categoria da tarefa Pacote