GradleAuthenticate@0 - Tarefa Gradle Authenticate v0

Use essa tarefa antes da sua build do Gradle para autenticar com feeds do Azure Artifacts para restauração de dependências e resolução de plugins. A tarefa instala e configura uma versão CI do provedor de credencial Gradle para o trabalho, depois autentica usando uma conexã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 - Arquivos de compilação
string.

Forneça uma lista separada por nova linha de arquivos Gradle para a tarefa escanear URLs de feeds do Azure Artifacts. Inclua cada arquivo Gradle que defina repositórios para a build, como settings.gradle, settings.gradle.kts, build.gradle, ou build.gradle.kts. Se sua build usa o bloco Gradle plugins {} em settings.gradle, inclua esse arquivo para que a tarefa detecte automaticamente a versão do plugin.


repositoryUrl - URL(s) de repositório(s)
string.

Forneça uma lista separada por nova linha das URLs do repositório Azure Artifacts para autenticação. Quando você especifica essa entrada, a tarefa usa as URLs fornecidas em vez de escanear arquivos de build para descobrir URLs de repositório. Se você também fornecer arquivos de build, a tarefa ainda pode usá-los para detecção de versões de plugins.


adoServiceConnection - Conexã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 você deixar essa entrada vazia, a tarefa volta à autenticação baseada em tokens usando ARTIFACTS_GRADLE_AUTH_ACCESS_TOKEN quando está configurada, ou SYSTEM_ACCESSTOKEN de outra forma.


pluginToolVersion - Versão da ferramenta de plugin
string.

Substitua a versão do plugin de autenticação Gradle instalada pela tarefa. Por padrão, a tarefa usa a versão compatível mais recente. Use essa entrada apenas quando precisar de uma versão específica do plugin.


gradleUserHome - Casa do usuário Gradle
string.

Substitua o diretório pessoal do usuário do Gradle. Por padrão, a tarefa usa GRADLE_USER_HOME quando está ativada, ou ~/.gradle de outra forma. Defina essa entrada quando sua build usar uma localização de usuário personalizada do Gradle.


Opções de controle de tarefa

Todas as tarefas têm opções de controle além das suas entradas de tarefas. Para obter mais informações, consulte as opções de Controle de e as propriedades comuns da tarefa.

Variáveis de saída

Nenhum.

Observações

Execute essa tarefa no mesmo trabalho e antes do comando Gradle que precisa de acesso ao Azure Artifacts. 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 você fornecer conexão de serviço, a tarefa configura a Federação de Identidade de Carga de Trabalho para cada feed Azure Artifacts descoberto.
  • Se você não fornecer conexã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, usa SYSTEM_ACCESSTOKEN.

Use arquivos de build ou URLs de repositório para indicar à tarefa onde procurar feeds do Azure Artifacts. Se a varredura não encontrar URLs do Azure Artifacts, a tarefa é concluída com sucesso, mas não configura a autenticação para nenhum feed.

Como funciona a descoberta de feeds

  • Se você fornecer URLs de repositório, a tarefa usa essas URLs para autenticação e não escaneia arquivos de compilação para descobrir outras URLs de repositório.

  • Se você fornecer tanto URLs de repositório quanto arquivos de compilação, apenas as URLs especificadas do repositório serão configuradas durante essa execução, mesmo que os arquivos de compilação contenham repositórios adicionais do Azure Artifacts.

  • Se você também fornecer arquivos de compilação, a tarefa ainda os usa para determinar a versão do plugin do provedor de credenciais.

  • Se você não fornecer URLs de repositórios, a tarefa escaneia os arquivos listados nos arquivos de compilação para URLs de feed do Azure Artifacts, como https://pkgs.dev.azure.com/....

  • Se você deixar arquivos de build vazios e não fornecer URLs do repositório, a tarefa automaticamente busca arquivos Gradle comuns no diretório de trabalho:

    • settings.gradle
    • settings.gradle.kts
    • build.gradle
    • build.gradle.kts

Como funciona a resolução das versões dos plugins

A tarefa determina qual versão do provedor de credenciais CI Gradle usar na compilação. Por padrão, a tarefa usa a versão compatível mais recente. A tarefa determina a versão na seguinte ordem:

  1. Uma versão do plugin declarada nos arquivos Gradle.
  2. O valor especificado na versão da ferramenta Plugin.
  3. Uma versão detectada no pacote de provedores de credenciais resolvidos.
  4. Uma versão de reserva.

Se seu repositório usa settings.gradle com o bloco Gradle plugins {} , inclua esse arquivo nos arquivos de build 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 temporário local no estilo Maven para o provedor de credenciais CI Gradle
  • Escreve um arquivo de configuração de autenticação para os feeds descobertos
  • escreve um script temporário de entrada Gradle no diretório inicial do usuário Gradle
  • define variáveis de ambiente que o script de init e o provedor de credenciais usam durante a build do Gradle

A tarefa também registra a limpeza pós-trabalho para que esses arquivos temporários sejam removidos após o término do trabalho.

Múltiplas invocações em um mesmo trabalho

Você pode correr GradleAuthenticate@0 mais de uma vez no mesmo trabalho. Isso é útil quando diferentes montagens Gradle no trabalho precisam de conjuntos de alimentação diferentes ou conexões de serviço diferentes. Invocações posteriores se adicionam à configuração temporária existente e substituem entradas para a mesma URL do feed quando necessário.

Permissions

Essa tarefa configura a autenticação, mas não concede permissões para o feed. Se o pipeline acessar um feed em outro projeto ou organização, certifique-se de que a identidade do pipeline ou a conexão do serviço tenha o acesso necessário. Para mais informações, veja Permissões de pacotes no Azure Pipelines.

Examples

Autenticar feeds descobertos a partir de arquivos Gradle usando a Federação de Identidade de Carga de Trabalho

Neste exemplo, a tarefa escaneia os arquivos Gradle listados em busca de URLs de feeds do Azure Artifacts, detecta a versão do plugin do provedor de credenciais de settings.gradle, e configura a autenticação WIF usando uma conexã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 esse padrão quando seu repositório já contém as URLs do feed do Azure Artifacts na configuração do Gradle e você quer 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 Azure Artifacts sem escanear nenhum arquivo Gradle. Isso é útil quando a URL do repositório é conhecida de imediato ou quando o feed relevante não está declarado em um arquivo 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 esse padrão quando a autenticação baseada em tokens for suficiente e você quiser direcionar diretamente uma ou mais URLs conhecidas de feeds do Azure Artifacts.

Requirements

Requisito Descrição
Tipos de pipeline YAML, build clássico, versão clássica
Executado em Agente, DeploymentGroup
Demands None
Recursos Essa tarefa não atende a nenhuma demanda 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