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?
- Quando é que eu devo executar esta tarefa?
- Tenho vários projetos npm. Preciso de executar esta tarefa para cada ficheiro .npmrc?
- O meu agente está por detrás de um representante da web. Vai
npmAuthenticate
se prepararnpm/gulp/Grunt
para usar o meu representante? - O meu Pipeline precisa de aceder a um feed num projeto diferente.
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 opcionalmenteno_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 pornpm
.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 - Restaurar e publicar
npm
pacotes fora da sua organização - npmrc
- npm
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 |