Gestire le dipendenze di compilazione

Questa pagina spiega come specificare le dipendenze di build. Cloud Build ti consente di gestire le dipendenze del codice sorgente separatamente dal processo di compilazione.

Nel file di configurazione della compilazione, puoi elencare uno o più repository da clonare per la build e l'ordine in cui recuperarli. La specifica delle dipendenze in questo modo separa il recupero delle dipendenze dal processo di build stesso.

Se non includi dipendenze nel file di configurazione della compilazione, Cloud Build clona il repository di codice sorgente che contiene il file di configurazione della compilazione (per le build attivate) o il repository di codice che contiene il codice sorgente (per le build richiamate dalla riga di comando). Se includi dipendenze nel file di configurazione di compilazione, Cloud Build clona solo i repository specificati nel campo dependencies.

Le dipendenze vengono clonate nell'ordine in cui le specifichi. Inoltre, il recupero delle dipendenze avviene prima dell'esecuzione di qualsiasi logica specificata dall'utente. Pertanto, il recupero delle dipendenze è attendibile.

Le dipendenze vengono visualizzate nella scheda Dipendenze build della pagina Dettagli build.

Prima di iniziare

Le istruzioni riportate in questa pagina presuppongono che tu disponga di almeno uno dei seguenti due tipi di repository:

Per assicurarti che disponga delle autorizzazioni necessarie per aggiungere un repository Developer Connect come dipendenza, chiedi all'amministratore di concedere a il ruolo IAM di Accessore token di lettura di Developer Connect (developerconnect.readTokenAccessor) sul tuo account di servizio. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

L'amministratore potrebbe anche essere in grado di concedere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Specifica le dipendenze

Specifica le dipendenze aggiungendo un campo dependencies al file di configurazione della build. dependencies è una proprietà di primo livello nella configurazione di compilazione, ma puoi inserirla ovunque nel file.

Specifica le dipendenze di GitHub

Per specificare una dipendenza da un repository GitHub, aggiungi la seguente configurazione dependencies al file di configurazione della build:

YAML

 dependencies:
 - gitSource:
     repository:
       url: 'URL'
       developerConnect: 'DC_RESOURCE_PATH'
     revision: 'REVISION'
     recurseSubmodules: 'true|false'
     depth: 'DEPTH'
     destPath: 'DEST_PATH'

JSON

 {
     "dependencies": {
         "gitSource": {
             "repository": {
                 "url": "URL"
                 "developerConnect": "DC_RESOURCE_PATH"
             },
             "revision": "REVISION",
             "recurseSubmodules": true|false,
             "depth": "DEPTH",
             "destPath": "DEST_PATH",
         },
     },
 }

Sostituisci i seguenti valori:

  • URL: l'URL HTTPS del repository da recuperare. Obbligatorio a meno che il repository non sia connesso a Cloud Build utilizzando Developer Connect.

  • DC_RESOURCE_PATH: il Google Cloud percorso della risorsa a un repository Developer Connect. Ad esempio projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo. Obbligatorio se il repository è connesso a Cloud Build utilizzando Developer Connect.

    Se il repository è connesso tramite Developer Connect, devi disporre di quanto segue:

  • REVISION: obbligatorio. La versione, l'hash del commit, il tag o il nome del ramo da recuperare dal repository.

  • recurseSubmodules: "true|false": indica se recuperare i sottomoduli.

  • DEPTH: (facoltativo) la profondità della cronologia del repository da recuperare. Se non specificato, viene recuperato l'ultimo commit.

    • 1: l'ultimo commit
    • 2: gli ultimi due commit
    • 3: gli ultimi tre commit
    • -1: tutti i commit
  • DEST_PATH: obbligatorio. Il percorso della directory in cui viene clonato il repository. Ad esempio, my/repo.

    Quando imposti dest_path, il repository viene recuperato in /workspace/<dest_path>. Il valore di dest_path deve essere un percorso relativo alla directory di lavoro della build.

Specificare un artefatto generico come dipendenza

Per specificare un artefatto generico come dipendenza, aggiungi la seguente configurazione dependencies al file di configurazione della build:

YAML

dependencies:
- genericArtifact:
    resource: RESOURCE
    destPath: PATH

JSON

{
  "dependencies": [
    {
      "genericArtifact": {
        "resource": "RESOURCE",
        "destPath": "PATH"
      }
    }
  ]
}

Dove:

  • RESOURCE è l'indirizzo completo dell'artefatto generico all'interno del repository generico di Artifact Registry, formattato nel seguente modo:

    projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/packages/PACKAGE/versions/VERSION

    Ti consigliamo vivamente di includere l'impronta dell'artefatto nell'indirizzo della risorsa in modo che Cloud Build possa verificare che il riferimento all'artefatto sia immutabile. Una versione del pacchetto con un'impronta aggiunta è formattata come segue:

    VERSION@dirsum_sha256=HASH_VALUE

    Per trovare l'impronta di un artefatto in un repository Artifact Registry, consulta Recuperare l'impronta di una versione del pacchetto nel repository.

  • PATH è l'indirizzo della cartella in cui Cloud Build scarica il pacchetto dal repository. Se la cartella non esiste ancora, Cloud Build la crea automaticamente.

Passaggi successivi