Questa pagina descrive come creare un file di configurazione della build da utilizzare per avviare una build su Cloud Build.
Un file di configurazione della build definisce i campi necessari a Cloud Build per eseguire le attività. Avrai bisogno di un file di configurazione della build
se avvii le build utilizzando lo strumento a riga di comando gcloudo trigger di build. Puoi scrivere il file di configurazione della build utilizzando la sintassi YAML o JSON.
Prima di iniziare
Leggi la panoramica della configurazione della build per scoprire i campi che puoi includere in un file di configurazione della build.
Creazione di una configurazione della build
I passaggi seguenti spiegano come creare un file di configurazione della build di base. Ciascuno dei campi nel file di configurazione della build definisce una parte dell'attività che vuoi eseguire. L'unico campo obbligatorio nel file di configurazione della build è il campo name per un passaggio. Tutti gli altri campi sono facoltativi.
YAML
Crea il file di configurazione della build. Nella directory radice del progetto, crea un file denominato
cloudbuild.yaml. Questo è il file di configurazione di Cloud Build.Aggiungi il campo steps. La sezione
stepsnel file di configurazione della build contiene i passaggi di build che vuoi che Cloud Build esegua.steps:Aggiungi il primo passaggio. In
steps:, aggiungi un camponamee indirizzalo a un'immagine container per eseguire l'attività. Cloud Build e la sua community di sviluppatori forniscono diverse immagini container con strumenti e linguaggi comuni installati. Puoi utilizzare una di queste immagini (chiamate anche Cloud Builder) o qualsiasi immagine disponibile pubblicamente in un passaggio di build. Per informazioni sui diversi tipi di immagini container che puoi utilizzare in un passaggio di build, consulta Cloud Builder.Il seguente snippet mostra un passaggio di build con un builder
dockergcr.io/cloud-builders/docker, che è un'immagine container che esegue Docker.steps: - name: 'gcr.io/cloud-builders/docker'Aggiungi gli argomenti del passaggio. Il campo
argsdi un passaggio accetta un elenco di argomenti e li passa al builder a cui fa riferimento il camponame. Se il builder nel camponameha un punto di ingresso,argsnell'elenco viene utilizzato per accedere a quel punto di ingresso. Se il builder nel camponamenon ha un punto di ingresso, il primo elemento inargsviene utilizzato come punto di ingresso.Nel seguente esempio:
buildè il punto di ingresso del cloud builder Docker.-tè il tag Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-imageè il nome dell'immagine da creare in Artifact Registry. Il passaggio di build utilizza la sostituzione predefinita per l'ID progetto, pertanto questo valore viene sostituito automaticamente al tempo di compilazione..è la posizione del codice sorgente, che indica che il codice sorgente si trova nella directory di lavoro corrente.steps: - name: 'gcr.io/cloud-builders/docker' args: ['build', '-t', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image', '.']
Aggiungi altri passaggi. Puoi aggiungere un numero qualsiasi di passaggi di build al file di configurazione della build includendo campi
nameaggiuntivi e indirizzandoli ai cloud builder.Il seguente snippet include altri due passaggi nel file di configurazione della build:
- Un passaggio di build Docker per richiamare il comando
docker pushper eseguire il push della build dell'immagine nel passaggio precedente ad Artifact Registry. Un passaggio di build per il Google Cloud comando SDK con il
gcloudpunto di ingresso specificato, che crea un'istanza di Compute Engine dall'immagine container in Artifact Registry. Il campoenvè incluso per specificare la zona e la regione di Compute Engine.- name: 'gcr.io/cloud-builders/docker' args: ['push', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'
- Un passaggio di build Docker per richiamare il comando
Includi campi di configurazione di compilazione aggiuntivi. Puoi configurare ulteriormente la build includendo campi come
machineType,tagsotimeout. Per l'elenco completo dei campi che puoi includere nel file di configurazione della build, consulta la panoramica della configurazione della build.Nell'esempio seguente, il
gcr.io/google.com/cloudsdktool/cloud-sdkpassaggio di build scade dopo 240 secondi.- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'gcloud' timeout: 240s args: ['compute', 'instances', 'create-with-container', 'my-vm-name', '--container-image', 'us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-image'] env: - 'CLOUDSDK_COMPUTE_REGION=us-central1' - 'CLOUDSDK_COMPUTE_ZONE=us-central1-a'Per l'esempio completo di un file di configurazione della build di base, vedi lo snippet seguente:
Nell'esempio, le immagini container vengono archiviate in Artifact Registry. Se la build produce artefatti non container, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts. Per istruzioni su come eseguire questa operazione, consulta Archiviare immagini e artefatti.
JSON
Crea il file di configurazione della build. Nella directory radice del progetto, crea un file denominato
cloudbuild.json. Questo è il file di configurazione di Cloud Build.Aggiungi il campo steps. La sezione
stepsnel file di configurazione della build contiene i passaggi di build che vuoi che Cloud Build esegua.{ "steps": }Aggiungi il primo passaggio. In
steps:, aggiungi un camponamee indirizzalo a un'immagine container per eseguire l'attività. Cloud Build e la sua community di sviluppatori forniscono diverse immagini container con strumenti e linguaggi comuni installati. Puoi utilizzare una di queste immagini (chiamate anche Cloud Builder) o qualsiasi immagine disponibile pubblicamente in un passaggio di build. Per informazioni sui diversi tipi di immagini container che puoi utilizzare in un passaggio di build, consulta Cloud Builder.Il seguente snippet mostra un passaggio di build con un builder
dockergcr.io/cloud-builders/docker, che è un'immagine container che esegue Docker.{ "steps": [ { "name": "gcr.io/cloud-builders/docker" } ] }Aggiungi gli argomenti del passaggio. Il campo
argsdi un passaggio accetta un elenco di argomenti e li passa al builder a cui fa riferimento il camponame. Se il builder nel camponameha un punto di ingresso,argsnell'elenco viene utilizzato per accedere a quel punto di ingresso. Se il builder nel camponamenon ha un punto di ingresso, il primo elemento inargsviene utilizzato come punto di ingresso.Nel seguente esempio:
buildè il punto di ingresso del cloud builder Docker.-tè il tag Docker.us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/my-imageè il nome dell'immagine da creare in Artifact Registry. Il passaggio di build utilizza la sostituzione predefinita per l'ID progetto, pertanto questo valore viene sostituito automaticamente al tempo di compilazione..è la posizione del codice sorgente, che indica che il codice sorgente si trova nella directory di lavoro corrente.{ "steps": [ { "name": "gcr.io/cloud-builders/docker", "args": [ "build", "-t", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage", "." ] } ] }
Aggiungi altri passaggi. Puoi aggiungere un numero qualsiasi di passaggi di build al file di configurazione della build includendo campi
nameaggiuntivi e indirizzandoli ai cloud builder.Il seguente snippet include altri due passaggi nel file di configurazione della build:
- Un passaggio di build Docker per richiamare il comando
docker pushper eseguire il push della build dell'immagine nel passaggio precedente ad Artifact Registry. Un passaggio di build per il Google Cloud comando SDK con il
gcloudpunto di ingresso specificato, che crea un'istanza di Compute Engine dall'immagine container in Artifact Registry. Il campoenvè incluso per specificare la zona e la regione di Compute Engine.{ "name": "gcr.io/cloud-builders/docker", "args": [ "push", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ] }, { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }
- Un passaggio di build Docker per richiamare il comando
Includi campi di configurazione di compilazione aggiuntivi. Puoi configurare ulteriormente la build includendo campi come
machineType,tagsotimeout. Per l'elenco completo dei campi che puoi includere nel file di configurazione della build, consulta la panoramica della configurazione della build.Nell'esempio seguente, il
gcr.io/google.com/cloudsdktool/cloud-sdkpassaggio di build scade dopo 240 secondi.{ "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "gcloud", "timeout": "240s", "args": [ "compute", "instances", "create-with-container", "my-vm-name", "--container-image", "us-central1-docker.pkg.dev/${PROJECT_ID}/my-docker-repo/myimage" ], "env": [ "CLOUDSDK_COMPUTE_REGION=us-central1", "CLOUDSDK_COMPUTE_ZONE=us-central1-a" ] }Per l'esempio completo di un file di configurazione della build di base, vedi lo snippet seguente:
Nell'esempio, le immagini container vengono archiviate in Artifact Registry. Se la build produce artefatti non container, puoi archiviarli in Cloud Storage utilizzando il campo
artifacts. Per istruzioni su come eseguire questa operazione, consulta Archiviare immagini e artefatti.
Passaggi successivi
- Scopri come eseguire le build manualmente e utilizzando i trigger utilizzando il file di configurazione della build.
- Scopri come scrivere configurazioni di build per includere le dipendenze e creare, testare e implementare gli artefatti.