Visualizza i risultati della build

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

Prima di iniziare

Se vuoi utilizzare gli esempi di riga di comando in questa guida, installa lo gcloud strumento a riga di comando.

Visualizzare i risultati della build

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

Per ulteriori informazioni sulle autorizzazioni necessarie per visualizzare i log di build in Cloud Build o GitHub o GitHub Enterprise dopo la creazione del trigger, vedi Visualizzare i log di build.

Console

Nella Google Cloud console, il menu Cronologia build può mostrare informazioni sullo stato di una build (ad esempio, operazione 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 Google Cloud console:

Apri la pagina Cronologia build

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

Puoi filtrare le build utilizzando il campo Filtra, o inserendo una query.

Per visualizzare colonne aggiuntive come Descrizione trigger e Artefatti, utilizza il selettore di colonne .

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

  • Log di build: il log della build.
  • Dettagli esecuzione: i dettagli della build, incluse le variabili di ambiente e le sostituzioni.
  • Dipendenze build: se la build ha una o più dipendenze, questa scheda mostra le informazioni sulle dipendenze, come l'URL del repository e la revisione.
  • Artefatti build: gli artefatti della build, come immagini container, log di build o file binari.

Puoi visualizzare il log di build o i dettagli di esecuzione specifici di un 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 comando seguente:

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 comando seguente:

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 uno status complessivo per la build e uno status per ogni singolo passaggio di build.

La seguente tabella riassume gli stati quando una build o un passaggio ha esito positivo, va in timeout o non riesce:

Evento Stato build Stato passaggio
La build ha esito positivo SUCCESS Tutti i passaggi sono contrassegnati con SUCCESS.
La build ha esito positivo con i passaggi non riusciti consentiti SUCCESS
  • La build è contrassegnata con SUCCESS.
  • I passaggi non riusciti configurati con allowFailure o allowExitCodes sono contrassegnati con FAILED.
La build non riesce FAILURE
  • Il passaggio non riuscito è contrassegnato con FAILED.
  • I passaggi che hanno esito positivo prima della terminazione della build sono contrassegnati con SUCCESS.
  • I passaggi in fase di esecuzione sono contrassegnati con CANCELLED.
  • I passaggi che non iniziano l'esecuzione sono contrassegnati con QUEUED.
La build viene annullata dall'utente CANCELLED
  • I passaggi che hanno esito positivo prima dell'annullamento della build sono contrassegnati con SUCCESS.
  • I passaggi in fase di esecuzione sono contrassegnati con CANCELLED.
  • I passaggi che non iniziano l'esecuzione sono contrassegnati con QUEUED.
La build va in timeout TIMEOUT
  • I passaggi che hanno esito positivo prima del timeout della build sono contrassegnati con SUCCESS.
  • I passaggi in fase di esecuzione sono contrassegnati con CANCELLED.
  • I passaggi che non iniziano l'esecuzione sono contrassegnati con QUEUED.
Il passaggio va in timeout FAILED
  • Il passaggio che va in timeout è contrassegnato con TIMEOUT.
  • I passaggi che hanno esito positivo prima del passaggio in timeout sono contrassegnati con SUCCESS.
  • I passaggi in fase di esecuzione sono contrassegnati con CANCELLED.
  • I passaggi che non iniziano l'esecuzione sono contrassegnati con QUEUED.

Per visualizzare lo stato della build e dei passaggi, esegui il comando gcloud builds describe:

gcloud builds describe <var>BUILD_ID</var>

dove BUILD_ID è l'ID della build.

Il seguente snippet mostra lo stato di ogni passaggio di una build con un passaggio in timeout:

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

Filtrare 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 nella pagina Cronologia build della Google Cloud console. Ad esempio, puoi eseguire una query per le build non riuscite (che hanno un valore FAILURE nel campo dello stato), le build create dopo un determinato periodo di tempo, le build con tag e altre condizioni simili.

Campi supportati per le query

Puoi eseguire query per le 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 con punti (.) sono sottocampi.

Creare una stringa di query

Le stringhe di query utilizzano il formato generale:

field="value"

Utilizza la notazione con punti per specificare un sottocampo, ad esempio results.images.name. Le query supportano gli operatori di confronto = e !=, nonché >, >=, <, e <= per i campi con 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 per tutte le build riuscite:

status="SUCCESS"

Per eseguire una query per tutte le build che non sono ancora state completate:

status="QUEUED" OR status="WORKING"

Per eseguire una query per le build con un determinato nome dell'immagine del risultato:

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

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

tags="prod"

Per eseguire una query per le build contrassegnate come verificate:

options.requested_verify_option="VERIFIED"

Per eseguire una query per le build provenienti da un'origine in Cloud Storage (anziché da un repository Cloud Source):

source.storage_source.bucket!=""

Per eseguire una query per le build con un determinato digest del risultato:

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

Per eseguire una query per le build avviate dopo un'ora specifica e completate prima di un'ora specifica (fuso orario UTC):

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

Filtrare i risultati della build utilizzando i tag

Puoi utilizzare i tag nei file di configurazione, che ti consentono 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:

  • Il limite di caratteri di ogni tag è 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 la prima posizione della stringa.

Per aggiungere tag alla 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 cluster, utilizza l'opzione --filter in gcloud builds list. Puoi filtrare le build specificando un singolo tag o più tag.

    • Per filtrare le build in base a un singolo tag, specifica il tag come stringa nel campo tags. Il seguente comando elenca tutte le build con il tag '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 seguente comando elenca tutte le build con i tag 'test1' o 'test2' e con il tag '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