GradleAuthenticate@0 - Gradle Authenticate compito v0

Usa questo compito prima della build di Gradle per autenticarti con i feed di Azure Artifacts per il ripristino delle dipendenze e la risoluzione dei plugin. Il task installa e configura una versione CI del provider di credenziali Gradle per il lavoro, poi si autentica utilizzando una connessione di servizio Workload Identity Federation (WIF) o il token di accesso alla build già disponibile per il job.

Sintassi

# 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 - File di build
string.

Fornisci una lista separata per nuove linee di file Gradle per il compito da scansionare alla ricerca degli URL dei feed Azure Artifacts. Includere ogni file Gradle che definisce repository per la build, come settings.gradle, settings.gradle.kts, build.gradle, o build.gradle.kts. Se la tua build utilizza il blocco Gradle plugins {} in settings.gradle, includi quel file così che il task possa rilevare automaticamente la versione del plugin.


repositoryUrl - URL/i repository/i
string.

Fornisci una lista separata per nuova linea degli URL del repository Azure Artifacts da autenticare. Quando specifichi questo input, il task utilizza gli URL forniti invece di scansionare i file di compilazione per scoprire gli URL dei repository. Se fornisci anche file di compilazione, il task può comunque usarli per il rilevamento delle versioni dei plugin.


adoServiceConnection - Collegamento di servizio
string.

Il nome di una connessione di servizio Azure DevOps che utilizza la Federazione di Identità di Carico di Lavoro (WIF) per l'autenticazione. Se lasci questo input vuoto, il compito torna all'autenticazione basata su token usando ARTIFACTS_GRADLE_AUTH_ACCESS_TOKEN quando è impostato, o SYSTEM_ACCESSTOKEN in altro modo.


pluginToolVersion - Versione dello strumento plugin
string.

Sovrascrivi la versione del plugin di autenticazione Gradle installata dal task. Di default, il compito utilizza la versione compatibile più recente. Usa questo input solo quando ti serve una versione specifica del plugin.


gradleUserHome - Home utente Gradle
string.

Sovrascrivi la cartella Home Gradle utente. Per impostazione predefinita, il compito viene GRADLE_USER_HOME utilizzato quando è impostato, o ~/.gradle in altro modo. Imposta questo input quando la tua build utilizza una sede utente personalizzata di Gradle.


Opzioni di controllo delle attività

Tutte le attività hanno opzioni di controllo oltre ai relativi input di attività. Per altre informazioni, vedere Opzioni di controllo e proprietà comuni delle attività.

Variabili di output

Nessuno.

Osservazioni:

Esegui questo compito nello stesso lavoro e prima del comando Gradle che richiede l'accesso ad Azure Artifacts. Il compito prepara la configurazione di autenticazione richiesta per i passaggi successivi di Gradle nel lavoro.

Il compito supporta due modalità di autenticazione:

  • Se fornisci la connessione Service, il task configura la Federazione dell'Identità del carico di lavoro per ogni feed Azure Artifacts scoperto.
  • Se non fornisci la connessione al servizio, il task utilizza il token di accesso build dell'ambiente. Prima controlla se ARTIFACTS_GRADLE_AUTH_ACCESS_TOKEN; se quella variabile non è impostata, usa SYSTEM_ACCESSTOKEN.

Usa file di build o URL del repository per indicare al task dove cercare i feed di Azure Artifacts. Se la scansione non trova URL di Azure Artifacts, il compito viene completato con successo ma non configura l'autenticazione per nessun feed.

Come funziona la scoperta dei feed

  • Se fornisci URL del repository, il task usa quegli URL per l'autenticazione e non scansiona i file di compilazione per scoprire altri URL del repository.

  • Se fornisci sia URL del repository che file di compilazione, durante quella esecuzione verranno configurati solo gli URL specificati del repository, anche se i file di compilazione contengono repository aggiuntivi di Azure Artifacts.

  • Se fornisci anche file di compilazione, il compito li utilizza comunque per determinare la versione del plugin per il fornitore di credenziali.

  • Se non fornisci URL del repository, il task scansiona i file elencati nei file di compilazione per gli URL del feed di Azure Artifacts, come https://pkgs.dev.azure.com/....

  • Se lasci vuoti i file di compilazione e non fornisci URL del repository, il task cerca automaticamente file Gradle comuni nella directory di lavoro:

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

Come funziona la risoluzione delle versioni dei plugin

Il compito determina quale versione del provider di credenziali CI Gradle utilizzare per la build. Di default, il compito utilizza la versione compatibile più recente. Il compito determina la versione nel seguente ordine:

  1. Una versione plugin dichiarata nei file Gradle.
  2. Il valore specificato nella versione dello strumento Plugin.
  3. Una versione rilevata dal pacchetto di credenziali risolto.
  4. Una versione di riserva.

Se il tuo repository usa settings.gradle con il blocco Gradle plugins {} , includi quel file nei file di compilazione così il task può scoprire correttamente la versione del plugin.

Cosa cambia il compito

Per il lavoro attuale, il compito:

  • organizza un layout locale temporaneo in stile Maven per il fornitore di credenziali CI Gradle
  • scrive un file di configurazione di autenticazione per i feed scoperti
  • scrive uno script temporaneo di init Gradle nella cartella Home Gradle
  • imposta variabili di ambiente che lo script init e il fornitore di credenziali usano durante la build di Gradle

Il compito registra anche la pulizia post-lavoro in modo che questi file temporanei vengano rimossi dopo la fine del lavoro.

Più invocazioni in un solo lavoro

Puoi correre GradleAuthenticate@0 più di una volta nello stesso lavoro. Questo è utile quando diversi modelli Gradle nel lavoro necessitano di diversi gruppi di alimentazione o di connessioni di servizio differenti. Le invocazioni successive si aggiungono alla configurazione temporanea esistente e sostituiscono le voci dello stesso URL del feed quando necessario.

Permissions

Questo compito configura l'autenticazione, ma non concede permessi di feed. Se la pipeline accede a un feed in un altro progetto o organizzazione, assicurati che l'identità della pipeline o la connessione del servizio abbiano l'accesso richiesto. Per maggiori informazioni, vedi Permessi di pacchetto in Azure Pipelines.

Examples

Autentica i feed scoperti dai file Gradle utilizzando la Workload Identity Federation

In questo esempio, il task scansiona i file Gradle elencati per gli URL dei feed di Azure Artifacts, rileva la versione del plugin per il provider di credenziali da settings.gradle, e configura l'autenticazione WIF utilizzando una connessione di servizio 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 questo pattern quando il tuo repository contiene già gli URL del feed Azure Artifacts in configurazione Gradle e vuoi che il compito dedurisca il più possibile.

Autentica gli URL espliciti dei feed usando un token di accesso al lavoro

In questo esempio, il compito autentica un feed specifico di Azure Artifacts senza scansionare alcun file Gradle. Questo è utile quando l'URL del repository è noto fin dall'inizio o quando il feed rilevante non è dichiarato in un file che il compito può ispezionare.

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)

Usa questo schema quando l'autenticazione basata su token è sufficiente e vuoi indirizzare direttamente uno o più URL di feed Azure Artifacts noti.

Requisiti

Requisito Description
Tipi di pipeline YAML, build classica, versione classica
Funziona su Agente, DeploymentGroup
Richieste Nessuno
Funzionalità Questa attività non soddisfa alcuna richiesta di attività successive nel processo.
restrizioni dei comandi Any
variabili impostabili Any
Versione agente 2.144.0 o versione successiva
Categoria attività Package