Visualizza i risultati della build

Questa pagina spiega come visualizzare informazioni sulle tue build di Cloud Build utilizzando la console Google Cloud, lo strumento a riga di comando gcloud e l'API Cloud Build.

Prima di iniziare

Per utilizzare gli esempi delle righe di comando presenti in questa guida, installa strumento a riga di comando gcloud.

Visualizza i risultati della build

Per visualizzare i log di build, le entità richiedono uno dei seguenti IAM ruoli oltre alle autorizzazioni IAM di Cloud Build:

Per maggiori informazioni sulle autorizzazioni necessarie per visualizzare i log di build in Cloud Build, GitHub o GitHub Enterprise dopo la creazione dei trigger, consulta Visualizzazione dei log di build.

Console

Nella console Google Cloud, il menu Cronologia build può mostrare informazioni sullo stato di una build (ad esempio riuscita o non riuscita), sull'origine, sui risultati, sull'ora di creazione, sulle immagini e altro ancora.

Per visualizzare il menu Cronologia build, apri la pagina Cronologia build nella console Google Cloud:

Apri la pagina Cronologia build

Viene visualizzata la pagina Cronologia build, che contiene un elenco delle tue build recenti.

Per filtrare le build in base alla regione, utilizza il menu a discesa Regione nella parte superiore della pagina per scegliere l'area in base alla quale filtrare i dati.

Puoi anche filtrare le build utilizzando la casella di testo Filtra build nella parte superiore della o inserendo una query manualmente.

Per visualizzare altre colonne, ad esempio Descrizione trigger e Elementi, utilizza il selettore di colonne .

Per visualizzare i dettagli di una build specifica, vai alla Cronologia build e fai clic su una build specificata. Viene visualizzata la pagina Dettagli build, con il Riepilogo build della build. Il Riepilogo build include:

  • Log di compilazione, il log della compilazione.
  • Dettagli esecuzione, ovvero i dettagli della build, tra cui variabili di ambiente e sostituzioni.
  • Artefatti build, gli artefatti della tua build, ad esempio gli artefatti immagini, log di build o file binari.

Puoi visualizzare il log di build o i dettagli di esecuzione specifici di un il passaggio di build selezionando il passaggio nella tabella Passaggi a sinistra.

gcloud

Il comando gcloud builds list mostra tutte le build.

Per visualizzare le build, esegui il seguente comando:

gcloud builds list

Dovresti vedere un output simile al seguente:

ID                                    CREATE_TIME                DURATION  SOURCE                                                                                      IMAGES                                              STATUS
3a2055bc-ccbd-4101-9434-d376b88b8940  2018-02-16T18:33:26+00:00  23S       gs://gcb-docs-project_cloudbuild/source/1518806004.25-db1e250a7b7f496eb8242bfee5ac308e.tgz  us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image (+1 more)  SUCCESS
900704ca-7a0c-4569-ac08-884593c19aac  2018-02-16T18:32:32+00:00            gs://gcb-docs-project_cloudbuild/source/1518805951.23-03dd53d16f684c568fa2bb7ff7ebda06.tgz  -                                                   FAILURE
021f9ede-ddaa-4cfb-8988-60142b015ebd  2018-02-14T15:48:44+00:00  10S       gs://gcb-docs-project_cloudbuild/source/1518623322.56-9cd088ffc1e04f5aa6040728772d0c2a.tgz  -                                                   SUCCESS
8126d538-3c43-4304-a14c-33aceec8cb97  2018-02-14T15:46:13+00:00  10S       gs://gcb-docs-project_cloudbuild/source/1518623172.09-327c02585a4e44e782ac97dd80d5a5d5.tgz  us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image (+1 more)  SUCCESS

Per visualizzare i dettagli di una build specifica, esegui il seguente comando:

gcloud builds describe [BUILD_ID]

dove [BUILD_ID] è l'ID della build di cui vuoi ottenere i dettagli.

Dovresti vedere un output simile al seguente:

createTime: '2018-02-22T14:49:54.066666971Z'
finishTime: '2018-02-22T14:50:05.463758Z'
id: bcdb9c48-d92c-4489-a3cb-08d0f0795a0b
images:
- us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image
logUrl: https://console.cloud.google.com/cloud-build/builds/bcdb9c48-d92c-4489-a3cb-08d0f0795a0b?project=gcb-docs-project
logsBucket: gs://404889597380.cloudbuild-logs.googleusercontent.com
projectId: gcb-docs-project
results:
    buildStepImages:
    - sha256:a4363bc75a406c4f8c569b12acdd86ebcf18b6004b4f163e8e6293171462a79d
    images:
    - digest: sha256:1b2a237e74589167e4a54a8824f0d03d9f66d3c7d9cd172b36daa5ac42e94eb9
      name: us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image
      pushTiming:
          endTime: '2018-02-22T14:50:04.731919081Z'
          startTime: '2018-02-22T14:50:00.874058710Z'
      - digest: sha256:1b2a237e74589167e4a54a8824f0d03d9f66d3c7d9cd172b36daa5ac42e94eb9
        name: us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image:latest
        pushTiming:
            endTime: '2018-02-22T14:50:04.731919081Z'
            startTime: '2018-02-22T14:50:00.874058710Z'
source:
    storageSource:
        bucket: gcb-docs-project_cloudbuild
        generation: '1519310993665963'
        object: source/1519310992.2-8465b08c79e14e89bee09adc8203c163.tgz
sourceProvenance:
    fileHashes:
        gs://gcb-docs-project_cloudbuild/source/1519310992.2-8465b08c79e14e89bee09adc8203c163.tgz#1519310993665963:
        fileHash:
        - value: -aRYrWp2mtfKhHSyWn6KNQ==
    resolvedStorageSource:
        bucket: gcb-docs-project_cloudbuild
        generation: '1519310993665963'
        object: source/1519310992.2-8465b08c79e14e89bee09adc8203c163.tgz
startTime: '2018-02-22T14:49:54.966308841Z'
status: SUCCESS
steps:
- args:
  - build
  - --no-cache
  - -t
  - us-east1-docker.pkg.dev/gcb-docs-project/quickstart-image
  - .
  name: gcr.io/cloud-builders/docker
  status: SUCCESS
  timing:
      endTime: '2018-02-22T14:50:00.813257422Z'
      startTime: '2018-02-22T14:50:00.102600442Z'
timeout: 600s
timing:
    BUILD:
        endTime: '2018-02-22T14:50:00.873604173Z'
        startTime: '2018-02-22T14:50:00.102589403Z'
    FETCHSOURCE:
        endTime: '2018-02-22T14:50:00.087286880Z'
        startTime: '2018-02-22T14:49:56.962717504Z'
    PUSH:
        endTime: '2018-02-22T14:50:04.731958202Z'
        startTime: '2018-02-22T14:50:00.874057159Z'

Stato del passaggio e stato della build

Al termine di una build, Cloud Build fornisce un status complessivo per la build e un status per ogni singolo passaggio di build.

La tabella seguente riassume gli stati quando se una build o un passaggio hanno esito positivo, si verifica il timeout o non va a buon fine:

Evento Stato build Stato passaggio
Creazione riuscita SUCCESS Tutti i passaggi sono contrassegnati come SUCCESS.
La compilazione riesce con i passaggi non riusciti consentiti SUCCESS
  • La build è contrassegnata come SUCCESS.
  • I passaggi non riusciti configurati con allowFailure o allowExitCodes sono contrassegnati da FAILED.
Errori di compilazione FAILURE
  • Il passaggio non riuscito è contrassegnato con FAILED.
  • I passaggi che terminano correttamente prima della terminazione della build sono contrassegnati da SUCCESS.
  • I passaggi a metà dell'esecuzione sono contrassegnati con CANCELLED.
  • I passaggi che non iniziano a essere eseguiti sono contrassegnati da QUEUED.
La compilazione è stata annullata dall'utente CANCELLED
  • I passaggi riusciti prima dell'annullamento della build sono contrassegnati come SUCCESS.
  • I passaggi in fase di esecuzione sono contrassegnati da CANCELLED.
  • I passaggi che non iniziano a essere eseguiti sono contrassegnati come QUEUED.
Timeout build TIMEOUT
  • I passaggi riusciti prima del timeout della build sono contrassegnati come SUCCESS.
  • I passaggi a metà dell'esecuzione sono contrassegnati come CANCELLED.
  • I passaggi che non iniziano a essere eseguiti sono contrassegnati da QUEUED.
Il passaggio scade FAILED
  • Il passaggio del timeout è contrassegnato come TIMEOUT.
  • I passaggi riusciti prima del passaggio di timeout sono contrassegnati come SUCCESS.
  • I passaggi a metà dell'esecuzione sono contrassegnati come CANCELLED.
  • I passaggi che non iniziano a essere eseguiti sono contrassegnati da QUEUED.

Per visualizzare lo stato per ogni passaggio e per la compilazione, esegui il comando gcloud builds describe:

gcloud builds describe [BUILD_ID]

dove [BUILD_ID] è l'ID della build.

Lo snippet seguente mostra lo stato per ogni passaggio di una compilazione con un passaggio scaduto:

status: FAILURE
steps:
- args:
  - sleep
  - '60'
id: long sleep
name: alpine
status: CANCELLED
timing:
    endTime: '2018-02-26T14:09:18.531368493Z'
    startTime: '2018-02-26T14:09:11.023235026Z'
waitFor:
- '-'
- args:
- sleep
- '3'
id: shorty
name: alpine
status: SUCCESS
timeout: 60s
timing:
    endTime: '2018-02-26T14:09:15.497724138Z'
    startTime: '2018-02-26T14:09:11.023676903Z'
waitFor:
- '-'
- args:
  - sleep
  - '60'
name: alpine
status: TIMEOUT
timeout: 3s
timing:
    endTime: '2018-02-26T14:09:18.527488475Z'
    startTime: '2018-02-26T14:09:15.497736775Z'
waitFor:
- shorty
- args:
  - 'false'
name: alpine
status: QUEUED
waitFor:
- long sleep
timeout: 60s

Filtra i risultati della build utilizzando le query

Per trovare informazioni sulle build che soddisfano criteri specifici, fornisci una stringa di query nel campo Filtra build della pagina Cronologia build nella console Google Cloud. Ad esempio, puoi eseguire query sulle build non riuscite (che hanno un valore FAILURE nel campo stato), sulle build create dopo una determinata ora, sulle build taggate e su altre condizioni simili.

Campi supportati per le query

Puoi eseguire query sulle build in base ai valori dei seguenti campi:

  • status
  • build_id
  • trigger_id
  • source.storage_source.bucket
  • source.storage_source.object
  • source.repo_source.repo_name
  • source.repo_source.branch_name
  • source.repo_source.tag_name
  • source.repo_source.commit_sha
  • source_provenance.resolved_repo_source.commit_sha
  • results.images.name
  • results.images.digest
  • options.requested_verify_option
  • tags
  • images
  • create_time
  • start_time
  • finish_time

I campi elencati con la notazione punto (.) sono campi secondari.

Costruire una stringa di query

Le stringhe di query utilizzano la forma generale:

field="value"

Utilizza la notazione a punti per specificare un sottocampo, ad esempio results.images.name. Query supportare gli operatori di confronto = e !=, nonché >, >=, < e <= per i campi che hanno valori numerici (ad esempio create_time).

Puoi creare query composte utilizzando le espressioni booleane AND e OR.

Query di esempio comuni

Per eseguire una query su tutte le build riuscite:

status="SUCCESS"

Per eseguire query su tutte le build che devono ancora essere completate:

status="QUEUED" OR status="WORKING"

Per eseguire query sulle build con un determinato nome di immagine dei risultati:

(status="SUCCESS" OR status="FAILURE") AND \
    results.images.name="us-east1-docker.pkg.dev/my-project/my-image"

Per eseguire una query su tutte le build con il tag "prod":

tags="prod"

Per eseguire query sulle build contrassegnate come verificate:

options.requested_verify_option="VERIFIED"

Per eseguire query sulle build che provengono da un'origine in Cloud Storage (anziché una repository di codice sorgente Cloud):

source.storage_source.bucket!=""

Per eseguire query sulle build con un determinato digest dei risultati:

results.images.digest="sha256:6c7147fe4c813845ac2a9aa6f937bb272b68784f647c4f64c7325723c7245c88"

Per eseguire query sulle build avviate dopo una determinata ora e terminate prima di un'altra (fuso orario UTC):

create_time>"2016-10-12T18:43:49+00:00" AND finish_time<"2016-10-13T18:43:49+00:00"

Filtra i risultati della build utilizzando i tag

Puoi utilizzare i tag nei file di configurazione, il che ti consente di organizzare le build in gruppi e di filtrarle. Puoi specificare stringhe nei tag, ad esempio "prod" o "test".

I tag presentano le seguenti limitazioni:

  • Ogni tag ha un limite di 128 caratteri
  • Puoi definire un massimo di 64 tag per build
  • I tag possono contenere lettere, numeri e trattini bassi in qualsiasi posizione della stringa.
  • I tag possono contenere punti e trattini in qualsiasi posizione, tranne nella prima posizione della stringa.

Per aggiungere tag nella build:

  1. Nel file di configurazione della build, aggiungi il campo tags:

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'us-east1-docker.pkg.dev/$PROJECT_ID/cb-demo-img', '.' ]
    images:
    - 'us-east1-docker.pkg.dev/$PROJECT_ID/cb-demo-img'
    tags:
    - 'test1'
    - 'test2'
    
  2. Per visualizzare le build con tag nel tuo cluster, utilizza l'opzione --filter in gcloud builds list. Puoi filtrare le build specificando uno o più tag i tag.

    • Per filtrare le build in base a un singolo tag, specifica il tag come stringa nel campotags. Il seguente comando elenca tutte le build contrassegnate con 'test1':

       gcloud builds list --filter "tags='test1'"
      
    • Per filtrare le build in base a più tag, utilizza "AND", "OR" o "NOT" per elencare i tag. Il comando seguente elenca tutte le build contrassegnate con 'test1' o 'test2' e taggato con 'test3':

       gcloud builds list --filter "tags=('test1' OR 'test2') AND 'test3'"
      

    Dopo aver eseguito questi comandi, vedrai un output simile al seguente:

    ID                                    CREATE_TIME                DURATION  SOURCE                                                                             IMAGES                                 STATUS
    d33a9895-...                          ...                        1M45S     gs://...                                                                           us-east1-docker.pkg.dev/...            SUCCESS
    

Passaggi successivi