Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Usa esta tarea antes de tu compilación de Gradle para autenticarte con los feeds de Azure Artifacts para restaurar dependencias y resolver plugins. La tarea instala y configura una versión de CI del proveedor de credenciales Gradle para el trabajo, y luego se autentica utilizando una conexión de servicio de Federación de Identidad de Carga de Trabajo (WIF) o el token de acceso a la compilación que ya está disponible para el trabajo.
Syntax
# 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.
Entradas
buildFiles
-
Archivos de compilación
string.
Proporciona una lista separada por nueva línea de archivos Gradle para que la tarea escanee URLs de feeds de Azure Artifacts. Incluye cada archivo Gradle que defina repositorios para la compilación, como settings.gradle, settings.gradle.kts, build.gradle, o build.gradle.kts. Si tu build usa el bloque Gradle plugins {} en settings.gradle, incluye ese archivo para que la tarea pueda detectar automáticamente la versión del plugin.
repositoryUrl
-
URL(s) del repositorio
string.
Proporciona una lista separada por nueva línea de URLs del repositorio de Azure Artifacts para autenticar. Cuando especificas esta entrada, la tarea utiliza las URLs proporcionadas en lugar de escanear archivos de compilación para descubrir URLs de repositorio. Si también proporcionas archivos de compilación, la tarea aún puede usarlos para detectar versiones de plugins.
adoServiceConnection
-
Conexión de servicio
string.
El nombre de una Conexión de Servicio Azure DevOps que utiliza la Federación de Identidad de Carga de Trabajo (WIF) para la autenticación. Si dejas esta entrada vacía, la tarea vuelve a la autenticación basada en tokens usando ARTIFACTS_GRADLE_AUTH_ACCESS_TOKEN cuando está activada, o SYSTEM_ACCESSTOKEN de otra forma.
pluginToolVersion
-
Versión de la herramienta de plugins
string.
Anula la versión del plugin de autenticación Gradle instalada por la tarea. Por defecto, la tarea utiliza la última versión compatible. Usa esta entrada solo cuando necesites una versión específica del plugin.
gradleUserHome
-
Usuario de Gradle inicio
string.
Anula el directorio personal de usuario de Gradle. Por defecto, la tarea se usa GRADLE_USER_HOME cuando está configurada, o ~/.gradle de otra forma. Configura esta entrada cuando tu build use una ubicación de usuario personalizada de Gradle.
Opciones de control de tareas
Todas las tareas tienen opciones de control además de sus entradas de tarea. Para obtener más información, consulte Opciones de control y propiedades de tareas comunes.
Variables de salida
Ninguna.
Comentarios
Ejecuta esta tarea en el mismo trabajo y antes del comando Gradle que necesita acceso a Azure Artifacts. La tarea prepara la configuración de autenticación necesaria para los pasos posteriores de Gradle en el trabajo.
La tarea soporta dos modos de autenticación:
- Si proporcionas conexión de servicio, la tarea configura la Federación de Identidad de Carga de Trabajo para cada feed de Azure Artifacts descubierto.
- Si no proporcionas conexión de servicio, la tarea utiliza el token de acceso de compilación del entorno. Primero comprueba si
ARTIFACTS_GRADLE_AUTH_ACCESS_TOKEN; si esa variable no está establecida, usaSYSTEM_ACCESSTOKEN.
Utiliza archivos de compilación o URLs de repositorio para indicar a la tarea dónde buscar los feeds de Azure Artifacts. Si el escaneo no encuentra URLs de Azure Artifacts, la tarea se completa correctamente pero no configura autenticación para ninguna señal.
Cómo funciona el descubrimiento de feeds
Si proporcionas URL(es) de repositorio(s), la tarea utiliza esas URLs para autenticación y no escanea archivos de compilación para descubrir otras URLs de repositorio.
Si proporcionas tanto URLs de repositorio como archivos de compilación, solo se configurarán las URLs especificadas durante esa ejecución, incluso si los archivos de compilación contienen repositorios adicionales de Azure Artifacts.
Si también proporcionas archivos de compilación, la tarea los sigue utilizando para determinar la versión del plugin de proveedor de credenciales.
Si no proporcionas URL(es) de repositorio(s), la tarea escanea los archivos listados en los archivos de compilación para las URLs de feed de Azure Artifacts, como
https://pkgs.dev.azure.com/....Si dejas los archivos de compilación vacíos y no proporcionas URL(es) del repositorio(s), la tarea busca automáticamente archivos Gradle comunes en el directorio de trabajo:
settings.gradlesettings.gradle.ktsbuild.gradlebuild.gradle.kts
Cómo funciona la resolución de la versión de plugins
La tarea determina qué versión del proveedor de credenciales CI Gradle utilizar para la compilación. Por defecto, la tarea utiliza la última versión compatible. La tarea determina la versión en el siguiente orden:
- Una versión del plugin declarada en los archivos de Gradle.
- El valor especificado en la versión de la herramienta Plugin.
- Una versión detectada del paquete de proveedor de credenciales resuelto.
- Una versión de respaldo.
Si tu repositorio lo usa settings.gradle con el bloque Gradle plugins {} , incluye ese archivo en los archivos de compilación para que la tarea pueda descubrir correctamente la versión del plugin.
Qué cambia la tarea
Para el puesto actual, la tarea:
- organiza un diseño local temporal al estilo Maven para el proveedor de credenciales CI Gradle
- escribe un archivo de configuración de autenticación para las fuentes descubiertas
- escribe un script temporal de Gradle init en el directorio personal de usuario de Gradle
- establece variables de entorno que el script de init y el proveedor de credenciales utilizan durante la compilación de Gradle
La tarea también registra la limpieza posterior al trabajo para que estos archivos temporales se eliminen una vez finalizado el trabajo.
Múltiples invocaciones en un solo trabajo
Puedes correr GradleAuthenticate@0 más de una vez en el mismo trabajo. Esto es útil cuando diferentes montajes de Gradle en el trabajo necesitan diferentes conjuntos de alimentación o diferentes conexiones de servicio. Las invocaciones posteriores se suman a la configuración temporal existente y reemplazan las entradas de la misma URL de feed cuando es necesario.
Permissions
Esta tarea configura la autenticación, pero no concede permisos para el feed. Si la tubería accede a una fuente en otro proyecto u organización, asegúrate de que la identidad de la tubería o la conexión de servicio tenga el acceso necesario. Para más información, consulte Permisos de paquetes en Azure Pipelines.
Examples
- Autenticar las fuentes descubiertas a partir de archivos Gradle usando la Federación de Identidad de Carga de Trabajo
- Autentica las URLs explícitas del feed usando un token de acceso a trabajos
Autenticar las fuentes descubiertas a partir de archivos Gradle usando la Federación de Identidad de Carga de Trabajo
En este ejemplo, la tarea escanea los archivos Gradle listados en busca de URLs de feeds de Azure Artifacts, detecta la versión del plugin de proveedor de credenciales desde settings.gradle, y configura la autenticación WIF usando una conexión de servicio 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'
Usa este patrón cuando tu repositorio ya contiene las URLs del feed de Azure Artifacts en configuración de Gradle y quieres que la tarea infiera todo lo posible.
Autentica las URLs explícitas del feed usando un token de acceso a trabajos
En este ejemplo, la tarea autentica un feed específico de Azure Artifacts sin escanear ningún archivo de Gradle. Esto es útil cuando la URL del repositorio se conoce de antemano o cuando el feed relevante no está declarado en un archivo que la tarea pueda inspeccionar.
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)
Utiliza este patrón cuando la autenticación basada en tokens sea suficiente y quieras dirigirte directamente a una o más URLs conocidas de fuentes de Azure Artifacts.
Requisitos
| Requirement | Descripción |
|---|---|
| Tipos de canalización | YAML, compilación clásica, versión clásica |
| Se ejecuta en | Agente, DeploymentGroup |
| Demands | Ninguno |
| Capabilities | Esta tarea no satisface ninguna demanda de tareas posteriores en el trabajo. |
| restricciones de comandos | Any |
| variables settable | Any |
| Versión del agente | 2.144.0 o superior |
| Categoría de tarea | Package |