npmAuthenticate@0 - tarefa npm authenticate (para executores de tarefas) v0
Use essa tarefa para fornecer npm
credenciais a um .npmrc
arquivo em seu repositório para o escopo do build. Isso permite que npm
, bem como npm
executores de tarefas como gulp e Grunt, se autentiquem com registros privados.
Sintaxe
# 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
- Arquivo .npmrc para autenticação
string
. Obrigatórios.
O caminho para o .npmrc
arquivo que especifica os registros com os quais você deseja trabalhar. Selecione o arquivo, não a pasta , como /packages/mypackage.npmrc
.
workingFile
- Arquivo .npmrc para autenticação
string
.
O caminho para o .npmrc
arquivo que especifica os registros com os quais você deseja trabalhar. Selecione o arquivo, não a pasta , como /packages/mypackage.npmrc
.
customEndpoint
- Credenciais para registros fora desta organização/coleção
string
.
A lista separada por vírgulas de nomes de conexão de serviço npm para registros fora dessa organização ou coleção. O arquivo especificado .npmrc
deve conter entradas do Registro correspondentes às conexões de serviço. Se você precisar apenas de registros nesta organização ou coleção, deixe isso em branco. As credenciais do build são usadas automaticamente.
customEndpoint
- Credenciais para registros fora dessa conta/coleção
string
.
A lista separada por vírgulas de nomes de conexão de serviço npm para registros fora dessa organização ou coleção. O arquivo especificado .npmrc
deve conter entradas do Registro correspondentes às conexões de serviço. Se você precisar apenas de registros nesta organização ou coleção, deixe isso em branco. As credenciais do build são usadas automaticamente.
Opções de controle de tarefa
Todas as tarefas têm opções de controle além de suas entradas de tarefa. Para obter mais informações, consulte Opções de controle e propriedades comuns da tarefa.
Variáveis de saída
Nenhum.
Comentários
Use essa tarefa para fornecer npm
credenciais a um .npmrc
arquivo em seu repositório para o escopo do build. Isso permite que npm
, bem como npm
executores de tarefas como gulp e Grunt, se autentiquem com registros privados.
- Como funciona essa tarefa?
- Quando devo executar essa tarefa no meu pipeline?
- Tenho vários projetos npm. Preciso executar essa tarefa para cada arquivo .npmrc?
- Meu agente está por trás de um proxy Web.
npm/gulp/Grunt
ConfiguraránpmAuthenticate
para usar meu proxy? - Meu Pipeline precisa acessar um feed em um projeto diferente
Como funciona essa tarefa?
Essa tarefa pesquisa o arquivo especificado .npmrc
em busca de entradas do Registro e acrescenta detalhes de autenticação para os registros descobertos ao final do arquivo. Para todos os registros na organização/coleção atual, as credenciais do build são usadas. Para registros em uma organização diferente ou hospedados por terceiros, os URIs do Registro serão comparados com os URIs das conexões de serviço npm especificadas pela customEndpoint
entrada e as credenciais correspondentes serão usadas. O .npmrc
arquivo será revertido para seu estado original no final da execução do pipeline.
Quando devo executar essa tarefa no meu pipeline?
Essa tarefa deve ser executada antes de usar npm
ou um npm
executor de tarefas para instalar ou enviar pacotes por push para um repositório npm autenticado, como o Azure Artifacts. Não há outros requisitos de ordenação.
Tenho vários projetos npm. Preciso executar essa tarefa para cada arquivo .npmrc?
Essa tarefa só adicionará detalhes de autenticação a um .npmrc
arquivo por vez. Se você precisar de autenticação para vários .npmrc
arquivos, poderá executar a tarefa várias vezes, uma vez para cada .npmrc
arquivo. Como alternativa, considere criar um .npmrc
arquivo que especifique todos os registros usados por seus projetos, em execução npmAuthenticate
nesse .npmrc
arquivo e, em seguida, definir uma variável de ambiente para designar esse .npmrc
arquivo como o arquivo de configuração npm por usuário.
- 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
Meu agente está por trás de um proxy Web. npm/gulp/Grunt
Configurará npmAuthenticate
para usar meu proxy?
A resposta é não. Embora essa tarefa em si funcione por trás de um proxy Web que seu agente foi configurado para usar, ela não configura npm
nem npm
os executores de tarefas para usar o proxy.
Para fazer isso, você pode:
Defina as variáveis
http_proxy
/https_proxy
de ambiente e, opcionalmenteno_proxy
, como suas configurações de proxy. Consulte npm config para obter detalhes. Observe que essas são variáveis comumente usadas que outras ferramentas que nãonpm
são (por exemplo, curl) também podem usar.Adicione as configurações de proxy à configuração do npm, manualmente, usando o conjunto de configurações do npm ou definindo variáveis de ambiente prefixadas com
NPM_CONFIG_
.Cuidado:
npm
os executores de tarefas podem não ser compatíveis com todos os métodos de configuração de proxy compatíveisnpm
com o .Especifique o proxy com um sinalizador de linha de comando ao chamar
npm
.- script: npm ci --https-proxy $(agent.proxyurl)
Se o proxy exigir autenticação, talvez seja necessário adicionar uma etapa de build adicional para construir um URI de proxy 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)
Meu Pipeline precisa acessar um feed em um projeto diferente
Se o pipeline estiver em execução em um projeto diferente do projeto que hospeda o feed, você deverá configurar o outro projeto para conceder acesso de leitura/gravação ao serviço de build. Confira Permissões de pacote no Azure Pipelines para obter mais detalhes.
Exemplos
- Restaurar
npm
pacotes para seu projeto de um registro em sua organização - Restaurar e publicar
npm
pacotes fora de sua organização - npmrc
- npm
Restaurar npm
pacotes para seu projeto de um registro em sua organização
Se os únicos registros autenticados que você usa forem registros do Azure Artifacts em sua organização, você só precisará especificar o caminho para um .npmrc
arquivo 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 de sua organização
Se o .npmrc
contiver registros do Azure Artifacts de uma organização diferente ou usar um repositório de pacote autenticado de terceiros, você precisará configurar conexões de serviço npm e especificá-las na customEndpoint
entrada.
Os registros em sua organização do Azure Artifacts também serão autenticados automaticamente.
.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
A URL do Registro que aponta para um feed do Azure Artifacts pode ou não conter o projeto. Uma URL para um feed com escopo de projeto deve conter o projeto e a URL de um feed com escopo de organização não deve conter o projeto. Saiba mais sobre feeds com escopo 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 conexões de serviço npm que foram configuradas e autorizadas para uso em seu pipeline e têm URLs que correspondem às do arquivo especificado .npmrc
.
Requisitos
Requisito | Descrição |
---|---|
Tipos de pipeline | YAML, build clássico, versão clássica |
Executa em | Agent, DeploymentGroup |
Demandas | Nenhum |
Funcionalidades | Essa tarefa não atende a nenhuma demanda para tarefas subsequentes no trabalho. |
Restrições de comando | Qualquer |
Variáveis configuráveis | Qualquer |
Versão do agente | 2.115.0 ou superior |
Categoria da tarefa | Pacote |