Gestire le dipendenze di compilazione

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

Nel file di configurazione della build, 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 build, Cloud Build clona il repository del codice sorgente che contiene il file di configurazione della build (per le build attivate) o il repository che contiene il codice sorgente (per le build che richiami dalla riga di comando). Se includi le dipendenze nel file di configurazione della build, 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 è considerato 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 il ruolo IAM Developer Connect Read Token Accessor (developerconnect.readTokenAccessor) al 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 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 della build, 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 percorso della risorsa di un repository Developer Connect. Google Cloud 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 di commit, il tag o il nome del ramo da recuperare dal repository.

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

  • DEPTH: facoltativo, indica la profondità della cronologia del repository da recuperare. Se non viene 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 dest_path deve essere un percorso relativo alla directory di lavoro della build.

Specifica un artefatto generico come dipendenza

Per specificare un artefatto generico come dipendenza, aggiungi la seguente dependencies configurazione 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 come segue:

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

    Ti consigliamo vivamente di includere l'impronta digitale 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 digitale aggiunta è formattata come segue:

    VERSION@dirsum_sha256=HASH_VALUE

    Per trovare l'impronta digitale di un artefatto in un repository Artifact Registry, consulta Recuperare l'impronta digitale 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