Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Utilisez cette tâche avant votre compilation Gradle pour vous authentifier avec les flux Azure Artifacts afin de restaurer les dépendances et de résoudre les plugins. La tâche installe et configure une version CI du fournisseur d’identifiants Gradle pour la tâche, puis s’authentifie en utilisant soit une connexion de service Workload Identity Federation (WIF), soit le jeton d’accès à la compilation déjà disponible pour la tâche.
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.
Données d'entrée
buildFiles
-
Fichiers de compilation
string.
Fournir une liste séparée par nouvelle ligne de fichiers Gradle pour que la tâche puisse analyser les URL des flux Azure Artifacts. Incluez chaque fichier Gradle qui définit des dépôts pour la construction, tels que settings.gradle, settings.gradle.kts, build.gradle, ou build.gradle.kts. Si votre build utilise le bloc Gradle plugins {} dans settings.gradle, incluez ce fichier afin que la tâche puisse détecter automatiquement la version du plugin.
repositoryUrl
-
URL(s) du dépôt
string.
Fournir une liste séparée par nouvelle ligne des URL du dépôt Azure Artifacts à authentifier. Lorsque vous spécifiez cette entrée, la tâche utilise les URL fournies au lieu de scanner les fichiers de compilation pour découvrir les URL du dépôt. Si vous fournissez aussi des fichiers de compilation, la tâche peut toujours les utiliser pour la détection des versions de plugins.
adoServiceConnection
-
Connexion de service
string.
Le nom d’une connexion de service Azure DevOps qui utilise la Fédération d’Identité de Charge de Travail (WIF) pour l’authentification. Si vous laissez cette entrée vide, la tâche revient à l’authentification basée sur un jeton en utilisant ARTIFACTS_GRADLE_AUTH_ACCESS_TOKEN quand elle est activée, ou SYSTEM_ACCESSTOKEN autrement.
pluginToolVersion
-
Version de l’outil de plugin
string.
Écartez la version du plugin d’authentification Gradle installée par la tâche. Par défaut, la tâche utilise la dernière version compatible. Utilisez cette entrée uniquement lorsque vous avez besoin d’une version spécifique du plugin.
gradleUserHome
-
Accueil utilisateur Gradle
string.
Écartez le répertoire personnel de l’utilisateur Gradle. Par défaut, la tâche utilise GRADLE_USER_HOME quand elle est activée, ou ~/.gradle autrement. Définissez cette entrée lorsque votre build utilise un emplacement de domicile utilisateur personnalisé de Gradle.
Options de contrôle de tâche
Toutes les tâches ont des options de contrôle en plus de leurs entrées de tâche. Pour plus d’informations, consultez Options de contrôle et propriétés de tâche courantes.
Variables de sortie
Aucun.
Remarques
Exécutez cette tâche dans le même job et avant la commande Gradle qui nécessite l’accès à Azure Artifacts. La tâche prépare la configuration d’authentification requise pour les étapes Gradle suivantes du travail.
La tâche prend en charge deux modes d’authentification :
- Si vous fournissez une connexion Service, la tâche configure la fédération d’identité de charge de travail pour chaque flux Azure Artifacts découvert.
- Si vous ne fournissez pas de connexion Service, la tâche utilise le token d’accès de build depuis l’environnement. Il vérifie d’abord ;
ARTIFACTS_GRADLE_AUTH_ACCESS_TOKENsi cette variable n’est pas définie, il utiliseSYSTEM_ACCESSTOKEN.
Utilisez les fichiers de compilation ou les URL(s) du dépôt pour indiquer à la tâche où chercher les flux Azure Artifacts. Si la recherche ne détecte aucune URL Azure Artifacts, la tâche s'achève avec succès mais ne configure pas l'authentification pour les flux.
Comment fonctionne la découverte des flux
Si vous fournissez des URL de dépôt, la tâche utilise ces URLs pour l’authentification et ne scanne pas les fichiers de compilation pour découvrir d’autres URLs de dépôt.
Si vous fournissez à la fois des URLs de dépôt et des fichiers de compilation, seules les URLs de dépôt spécifiées seront configurées pendant cette exécution, même si les fichiers de compilation contiennent des dépôts Azure Artifacts supplémentaires.
Si vous fournissez aussi des fichiers Build, la tâche les utilise toujours pour déterminer la version du plugin fournisseur d’identifiants.
Si vous ne fournissez pas d'URL de dépôt (URL), la tâche scanne les fichiers listés dans les fichiers de compilation pour les URL de flux Azure Artifacts, telles que
https://pkgs.dev.azure.com/....Si vous laissez les fichiers de compilation vides et ne fournissez pas d’URL de dépôt, la tâche recherche automatiquement les fichiers Gradle courants dans le répertoire de travail :
settings.gradlesettings.gradle.ktsbuild.gradlebuild.gradle.kts
Fonctionnement de la résolution des versions des plugins
La tâche détermine quelle version du fournisseur d’identifiants CI Gradle utiliser pour la compilation. Par défaut, la tâche utilise la dernière version compatible. La tâche détermine la version dans l’ordre suivant :
- Une version du plugin déclarée dans les fichiers Gradle.
- La valeur spécifiée dans la version de l’outil Plugin.
- Une version détectée dans le package de fournisseur d’accréditation résolu.
- Une version de secours.
Si votre dépôt utilise settings.gradle avec le bloc Gradle plugins {} , incluez ce fichier dans les fichiers de compilation afin que la tâche puisse découvrir correctement la version du plugin.
Ce que la tâche change
Pour le poste actuel, la tâche suivante :
- met en place une disposition locale temporaire de type Maven pour le fournisseur de certifications CI Gradle
- écrit un fichier de configuration d’authentification pour les flux découverts
- écrit un script temporaire Gradle init dans le répertoire utilisateur Gradle
- définit les variables d’environnement que le script d’init et le fournisseur d’identifiants utilisent lors de la compilation Gradle
La tâche enregistre également le nettoyage post-travail afin que ces fichiers temporaires soient supprimés après la fin du travail.
Plusieurs invocations dans un même emploi
Vous pouvez courir GradleAuthenticate@0 plus d’une fois dans le même poste. C’est utile lorsque différentes configurations Gradle du projet nécessitent différents ensembles d’alimentation ou différentes connexions de service. Les invocations ultérieures s’ajoutent à la configuration temporaire existante et remplacent les entrées de la même URL de flux lorsque nécessaire.
Permissions
Cette tâche configure l’authentification, mais n’accorde pas les permissions de flux. Si le pipeline accède à un flux dans un autre projet ou organisation, assurez-vous que l’identité du pipeline ou la connexion de service dispose de l’accès requis. Pour plus d’informations, voir Permissions de paquet dans Azure Pipelines.
Examples
- Authentifier les flux découverts à partir des fichiers Gradle en utilisant la Fédération d’Identité de Charge de Travail
- Authentifiez les URL explicites du flux en utilisant un jeton d’accès à un job
Authentifier les flux découverts à partir des fichiers Gradle en utilisant la Fédération d’Identité de Charge de Travail
Dans cet exemple, la tâche analyse les fichiers Gradle listés à la recherche des URL des flux Azure Artifacts, détecte la version du plugin fournisseur d’accréditations depuis settings.gradle, et configure l’authentification WIF en utilisant une connexion de service 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'
Utilisez ce schéma lorsque votre dépôt contient déjà les URL du flux Azure Artifacts en configuration Gradle et que vous souhaitez que la tâche infère autant que possible.
Authentifiez les URL explicites du flux en utilisant un jeton d’accès à un job
Dans cet exemple, la tâche authentifie un flux Azure Artifacts spécifique sans scanner de fichiers Gradle. Cela est utile lorsque l’URL du dépôt est connue dès le départ ou lorsque le flux pertinent n’est pas déclaré dans un fichier que la tâche peut inspecter.
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)
Utilisez ce schéma lorsque l’authentification basée sur un jeton est suffisante et que vous souhaitez cibler directement une ou plusieurs URL connues de flux Azure Artifacts.
Exigences
| Requirement | Description |
|---|---|
| Types de pipelines | YAML, Build Classique, Version Classique |
| Fonctionne sur | Agent, Groupe de déploiement |
| Demands | None |
| Capabilities | Cette tâche ne répond à aucune demande de tâches ultérieures dans le travail. |
| restrictions de commande | Any |
| variables settables | Any |
| Version de l’agent | 2.144.0 ou version ultérieure |
| Catégorie de tâche | Package |