Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använd denna uppgift innan din Gradle-build för att autentisera med Azure Artifacts-flöden för beroendeåterställning och plugin-lösning. Uppgiften installerar och konfigurerar en CI-version av Gradle-inloggningsleverantören för jobbet, och autentisera sig sedan genom att använda antingen en Workload Identity Federation (WIF)-tjänstanslutning eller den byggåtkomsttoken som redan är tillgänglig för jobbet.
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.
Inputs
buildFiles
-
Byggfiler
string.
Tillhandahåll en radlinjeseparerad lista med Gradle-filer för uppgiften att skanna efter URL:er i Azure Artifacts-flöden. Inkludera varje Gradle-fil som definierar repositorier för builden, såsom settings.gradle, , , build.gradle, eller build.gradle.ktssettings.gradle.kts. Om din build använder Gradle-blocket plugins {} i settings.gradle, inkludera den filen så att uppgiften automatiskt kan upptäcka plugin-versionen.
repositoryUrl
-
Arkivets URL(er)
string.
Tillhandahåll en radbrytningsseparerad lista över URL:er i Azure Artifacts-arkiv för autentisering. När du anger denna indata använder uppgiften de angivna URL:erna istället för att skanna byggfiler för att hitta repositoriella URL:er. Om du också tillhandahåller Byggfiler kan uppgiften fortfarande använda dem för att upptäcka pluginversioner.
adoServiceConnection
-
Tjänsteanslutning
string.
Namnet på en Azure DevOps Service Connection som använder Workload Identity Federation (WIF) för autentisering. Om du lämnar denna indata tom faller uppgiften tillbaka på tokenbaserad autentisering genom att använda ARTIFACTS_GRADLE_AUTH_ACCESS_TOKEN när den är satt, eller SYSTEM_ACCESSTOKEN på annat sätt.
pluginToolVersion
-
Plugin-verktygsversion
string.
Åsidosätt versionen av Gradle-autentiseringspluginet som installeras av uppgiften. Som standard använder uppgiften den senaste kompatibla versionen. Använd denna ingång endast när du behöver en specifik pluginversion.
gradleUserHome
-
Gradle användarhem
string.
Överskriv Gradle-användarens hemkatalog. Som standard används GRADLE_USER_HOME uppgiften när den är inställd, eller ~/.gradle på annat sätt. Ställ in denna inmatning när din byggnad använder en anpassad Gradle-användares hemplats.
Alternativ för uppgiftskontroll
Alla aktiviteter har kontrollalternativ utöver sina uppgiftsindata. Mer information finns i Kontrollalternativ och vanliga uppgiftsegenskaper.
Utdatavariabler
None.
Anmärkningar
Kör denna uppgift i samma jobb och före Gradle-kommandot som behöver tillgång till Azure Artifacts. Uppgiften förbereder den autentiseringskonfiguration som krävs för efterföljande Gradle-steg i jobbet.
Uppgiften stöder två autentiseringslägen:
- Om du tillhandahåller Service-anslutning konfigurerar uppgiften Workload Identity Federation för varje upptäckt Azure Artifacts-flöde.
- Om du inte tillhandahåller Service-anslutning använder uppgiften build-åtkomsttoken från miljön. Den kontrollerar först ;
ARTIFACTS_GRADLE_AUTH_ACCESS_TOKENom den variabeln inte är satt, använderSYSTEM_ACCESSTOKENden .
Använd Build-filer eller Repository-URL(er) för att tala om för uppgiften var den ska leta efter Azure Artifacts-flöden. Om skanningen inte hittar några Azure Artifacts-URL:er slutförs uppgiften framgångsrikt men konfigurerar inte autentisering för några flöden.
Hur feedupptäckt fungerar
Om du tillhandahåller Repository-URL(s) använder uppgiften dessa URL:er för autentisering och skannar inte byggfiler för att hitta andra repository-URL:er.
Om du tillhandahåller både Repository-URL(er) och Byggfiler, kommer endast de angivna repositorierna att konfigureras under den körningen, även om byggfilerna innehåller ytterligare Azure Artifacts-repositorier.
Om du också tillhandahåller Byggfiler använder uppgiften dem fortfarande för att bestämma versionen av credential provider-pluginet.
Om du inte tillhandahåller Repository-URL:er, skannar uppgiften filerna som listas i Byggfilerna efter Azure Artifacts feed-URL:er, såsom
https://pkgs.dev.azure.com/....Om du lämnar Build-filer tomma och inte anger Repository-URL(s), söker uppgiften automatiskt efter vanliga Gradle-filer i arbetskatalogen:
settings.gradlesettings.gradle.ktsbuild.gradlebuild.gradle.kts
Hur plugin-versionsupplösning fungerar
Uppgiften avgör vilken version av CI Gradle-behörighetsleverantören som ska användas för bygget. Som standard använder uppgiften den senaste kompatibla versionen. Uppgiften bestämmer versionen i följande ordning:
- En pluginversion deklarerad i Gradle-filerna.
- Värdet som anges i plugin-verktygsversionen.
- En version upptäckt från det lösta credential-leverantörspaketet.
- En reservversion.
Om ditt repository använder settings.gradle Gradle-blocket plugins {} , inkludera den filen i Byggfilerna så att uppgiften kan hitta plugin-versionen korrekt.
Vad uppgiften förändrar
För det nuvarande jobbet gäller uppgiften:
- iscensätter en tillfällig lokal Maven-liknande layout för CI Gradle-legitimationsleverantören
- skriver en autentiseringskonfigurationsfil för de upptäckta flödena
- skriver ett tillfälligt Gradle init-skript i Gradle-användarens hemkatalog
- sätter miljövariabler som init-skriptet och legitimationsleverantören använder under Gradle-bygget
Uppgiften registrerar också efter-jobb-rensning så att dessa tillfälliga filer tas bort efter att jobbet är klart.
Flera åkallan i ett och samma jobb
Du kan köra GradleAuthenticate@0 mer än en gång i samma jobb. Detta är användbart när olika Gradle-byggen i jobbet behöver olika matningsset eller olika serviceanslutningar. Senare anrop lägger till den befintliga tillfälliga konfigurationen och ersätter poster för samma flödes-URL vid behov.
Permissions
Denna uppgift konfigurerar autentisering, men ger inga flödesbehörigheter. Om pipelinen får tillgång till ett flöde i ett annat projekt eller en organisation, se till att pipelineidentiteten eller tjänsteanslutningen har rätt åtkomst. För mer information, se Paketbehörigheter i Azure-pipelines.
Examples
- Autentisera flöden som upptäckts från Gradle-filer genom att använda Workload Identity Federation
- Autentisera explicita feed-URL:er genom att använda en jobbåtkomsttoken
Autentisera flöden som upptäckts från Gradle-filer genom att använda Workload Identity Federation
I detta exempel skannar uppgiften de listade Gradle-filerna efter Azure Artifacts feed-URL:er, upptäcker versionen av credential provider-pluginet från settings.gradle, och konfigurerar WIF-autentisering genom att använda en Azure DevOps-tjänsteanslutning.
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'
Använd detta mönster när ditt repository redan innehåller Azure Artifacts-feed-URL:er i Gradle-konfiguration och du vill att uppgiften ska dra så mycket som möjligt slutsatser.
Autentisera explicita feed-URL:er genom att använda en jobbåtkomsttoken
I detta exempel autentiserar uppgiften ett specifikt Azure Artifacts-flöde utan att skanna några Gradle-filer. Detta är användbart när arkivets URL är känd från början eller när relevant flöde inte deklareras i en fil som uppgiften kan granska.
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)
Använd detta mönster när tokenbaserad autentisering är tillräcklig och du vill rikta in dig direkt på en eller flera kända URL:er i Azure Artifacts-flöden.
Requirements
| Krav | Beskrivning |
|---|---|
| Typer av pipelines | YAML, klassisk version, klassisk version |
| Körs på | Agent, DeploymentGroup |
| Demands | Ingen |
| Möjligheter | Den här aktiviteten uppfyller inte några krav på efterföljande uppgifter i jobbet. |
| Kommandobegränsningar | Any |
| variabler som kan | Any |
| Agentversion | 2.144.0 eller senare |
| Aktivitetskategori | Package |