Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Usa esta tarefa antes da tua build Gradle para autenticar com feeds do Artefactos do Azure para restaurar dependências e resolver plugins. A tarefa instala e configura uma versão CI do fornecedor de credenciais Gradle para o trabalho, depois autentica-se usando uma ligação de serviço de Federação de Identidade de Carga de Trabalho (WIF) ou o token de acesso à compilação que já está disponível para o trabalho.
Sintaxe
# Gradle Authenticate v0
# Authenticate Gradle builds with Azure Artifacts feeds using Workload Identity Federation or an access token.
- task: GradleAuthenticate@0
inputs:
#buildFiles: # string. Build files.
#repositoryUrl: # string. Repository URL(s).
#adoServiceConnection: # string. Service connection.
#pluginToolVersion: # string. Plugin tool version.
#gradleUserHome: # string. Gradle user home.
Inputs
buildFiles
-
Ficheiros de compilação
string.
Forneça uma lista separada por nova linha de ficheiros Gradle para a tarefa a analisar URLs de feeds do Artefactos do Azure. Inclua cada ficheiro Gradle que defina repositórios para a build, como settings.gradle, settings.gradle.kts, build.gradle, ou build.gradle.kts. Se a sua build usar o bloco Gradle plugins {} em settings.gradle, inclua esse ficheiro para que a tarefa possa detetar automaticamente a versão do plugin.
repositoryUrl
-
URL(s) de repositório(s)
string.
Forneça uma lista separada por nova linha dos URLs do repositório Artefactos do Azure para autenticar. Quando especifica esta entrada, a tarefa utiliza os URLs fornecidos em vez de analisar ficheiros de compilação para descobrir URLs de repositório. Se também fornecer ficheiros de compilação, a tarefa ainda pode usá-los para deteção de versões de plugins.
adoServiceConnection
-
Ligação de serviço
string.
O nome de uma Conexão de Serviço Azure DevOps que utiliza a Federação de Identidade de Carga de Trabalho (WIF) para autenticação. Se deixar esta entrada vazia, a tarefa volta à autenticação baseada em token, usando ARTIFACTS_GRADLE_AUTH_ACCESS_TOKEN quando está definida, ou SYSTEM_ACCESSTOKEN de outra forma.
pluginToolVersion
-
Versão da ferramenta de plugins
string.
Sobrescrita a versão do plugin de autenticação Gradle instalada pela tarefa. Por defeito, a tarefa utiliza a versão compatível mais recente. Usa esta entrada apenas quando precisares de uma versão específica do plugin.
gradleUserHome
-
Utilizador da Gradle
string.
Sobrepor o diretório pessoal do utilizador Gradle. Por defeito, a tarefa usa GRADLE_USER_HOME quando está definida, ou ~/.gradle de outra forma. Define esta entrada quando a tua build usar a localização de um utilizador personalizado do Gradle.
Opções de controlo de tarefas
Todas as tarefas têm opções de controle, além de suas entradas de tarefas. Para obter mais informações, consulte Opções de controle de e propriedades de tarefas comuns.
Variáveis de saída
Nenhum.
Observações
Executa esta tarefa no mesmo trabalho e antes do comando Gradle que precisa de acesso ao Artefactos do Azure. A tarefa prepara a configuração de autenticação necessária para as etapas subsequentes do Gradle no trabalho.
A tarefa suporta dois modos de autenticação:
- Se fornecer ligação ao Serviço, a tarefa configura a Federação de Identidade de Carga de Trabalho para cada feed Artefactos do Azure descoberto.
- Se não fornecer ligação de serviço, a tarefa usa o token de acesso de build do ambiente. Primeiro verifica se
ARTIFACTS_GRADLE_AUTH_ACCESS_TOKEN; se essa variável não estiver definida, usaSYSTEM_ACCESSTOKEN.
Use ficheiros de compilação ou URLs de repositório para indicar à tarefa onde procurar feeds do Artefactos do Azure. Se a análise não encontrar URLs do Artefactos do Azure, a tarefa é concluída com sucesso, mas não configura autenticação para nenhum feed.
Como funciona a descoberta de rações
Se forneceres URLs de repositório, a tarefa usa esses URLs para autenticação e não escaneia ficheiros de compilação para descobrir outros URLs de repositório.
Se fornecer tanto URLs de repositório como ficheiros de compilação, apenas os URLs especificados do repositório serão configurados durante essa execução, mesmo que os ficheiros de compilação contenham repositórios adicionais do Artefactos do Azure.
Se também fornecer ficheiros de compilação, a tarefa continua a usá-los para determinar a versão do plugin do fornecedor de credenciais.
Se não fornecer URLs de repositório, a tarefa analisa os ficheiros listados nos ficheiros de compilação para URLs de feed do Artefactos do Azure, como
https://pkgs.dev.azure.com/....Se deixar os ficheiros de compilação vazios e não fornecer URLs do repositório, a tarefa procura automaticamente ficheiros Gradle comuns no diretório de trabalho:
settings.gradlesettings.gradle.ktsbuild.gradlebuild.gradle.kts
Como funciona a resolução da versão dos plugins
A tarefa determina qual a versão do fornecedor de credenciais CI Gradle a usar para a compilação. Por defeito, a tarefa utiliza a versão compatível mais recente. A tarefa determina a versão pela seguinte ordem:
- Uma versão do plugin declarada nos ficheiros Gradle.
- O valor especificado na versão da ferramenta Plugin.
- Uma versão detetada no pacote de fornecedores de credenciais resolvido.
- Uma versão de reserva.
Se o teu repositório for usado settings.gradle com o bloco Gradle plugins {} , inclui esse ficheiro nos ficheiros de compilação para que a tarefa possa descobrir corretamente a versão do plugin.
O que a tarefa muda
Para o emprego atual, a tarefa:
- etapas um layout local temporário ao estilo Maven para o fornecedor de credenciais CI Gradle
- escreve um ficheiro de configuração de autenticação para os feeds descobertos
- escreve um script temporário de init Gradle no diretório inicial do utilizador Gradle
- define variáveis de ambiente que o script de init e o fornecedor de credenciais usam durante a build do Gradle
A tarefa também regista a limpeza pós-trabalho para que estes ficheiros temporários sejam removidos após o término do trabalho.
Múltiplas invocações num só trabalho
Podes correr GradleAuthenticate@0 mais do que uma vez no mesmo trabalho. Isto é útil quando diferentes montagens Gradle no trabalho precisam de diferentes conjuntos de alimentação ou diferentes ligações de serviço. Invocações posteriores adicionam-se à configuração temporária existente e substituem entradas para o mesmo URL de feed quando necessário.
Permissions
Esta tarefa configura a autenticação, mas não concede permissões de feed. Se o pipeline aceder a um feed noutro projeto ou organização, certifique-se de que a identidade do pipeline ou a ligação do serviço tem o acesso necessário. Para mais informações, consulte Permissões de Pacotes no Azure Pipelines.
Exemplos
- Autenticar feeds descobertos a partir de ficheiros Gradle usando a Federação de Identidade de Carga de Trabalho
- Autentique URLs explícitas do feed usando um token de acesso a trabalhos
Autenticar feeds descobertos a partir de ficheiros Gradle usando a Federação de Identidade de Carga de Trabalho
Neste exemplo, a tarefa analisa os ficheiros Gradle listados à procura de URLs de feeds do Artefactos do Azure, deteta a versão do plugin do fornecedor de credenciais a settings.gradlepartir de , e configura a autenticação WIF usando uma ligação de serviço Azure DevOps.
steps:
- task: GradleAuthenticate@0
displayName: 'Authenticate Azure Artifacts for Gradle'
inputs:
buildFiles: |
settings.gradle
build.gradle
adoServiceConnection: 'Gradle-WIF-Connection'
- task: Gradle@4
displayName: 'Run Gradle build'
inputs:
gradleWrapperFile: 'gradlew'
tasks: 'build'
Use este padrão quando o seu repositório já contiver as URLs do feed do Artefactos do Azure na configuração do Gradle e quiser que a tarefa infira o máximo possível.
Autentique URLs explícitas do feed usando um token de acesso a trabalhos
Neste exemplo, a tarefa autentica um feed específico do Artefactos do Azure sem escanear quaisquer ficheiros Gradle. Isto é útil quando a URL do repositório é conhecida desde o início ou quando o feed relevante não está declarado num ficheiro que a tarefa possa inspecionar.
steps:
- task: GradleAuthenticate@0
displayName: 'Authenticate explicit Azure Artifacts feed'
inputs:
repositoryUrl: |
'https://pkgs.dev.azure.com/contoso/Fabrikam/_packaging/SharedFeed/maven/v1'
pluginToolVersion: '1.0.0'
- task: Gradle@4
displayName: 'Publish package'
inputs:
gradleWrapperFile: 'gradlew'
tasks: 'publish'
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
Use este padrão quando a autenticação baseada em tokens for suficiente e quiser direcionar diretamente um ou mais URLs conhecidos dos feeds do Artefactos do Azure.
Requisitos
| Requirement | Descrição |
|---|---|
| Tipos de pipeline | YAML, Construção clássica, Versão clássica |
| Funciona em | Agente, DeploymentGroup |
| Demands | None |
| Capacidades | Esta tarefa não satisfaz quaisquer exigências para tarefas subsequentes no trabalho. |
| Restrições de comando | Any |
| Variáveis configuráveis | Any |
| Versão do agente | 2.144.0 ou superior |
| Categoria de tarefa | Package |