Build-Ergebnisse ansehen

Auf dieser Seite wird erläutert, wie Sie Informationen zu Ihren Cloud Build-Builds mit der Google Cloud Console, dem gcloud-Befehlszeilentool und der Cloud Build API aufrufen.

Hinweise

Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten, installieren Sie das gcloud-Befehlszeilentool.

Build-Ergebnisse ansehen

Zum Aufrufen von Build-Logs benötigen Hauptkonten zusätzlich zu den Cloud Build-IAM-Berechtigungen eine der folgenden IAM-Rollen:

Weitere Informationen zu den erforderlichen Berechtigungen zum Ansehen von Build-Logs in Cloud Build, GitHub oder GitHub Enterprise nach dem Erstellen des Triggers finden Sie unter Build-Logs ansehen.

Console

In der Google Cloud Console können Sie im Menü Build-Verlauf Informationen zum Build-Status (Erfolg oder Fehler), zur Quelle, zu den Ergebnissen, zum Erstellungszeitpunkt, zu Images und mehr anzeigen lassen.

Um das Menü Build-Verlauf aufzurufen, öffnen Sie in der Google Cloud Console die Seite Build-Verlauf:

Zur Seite "Build-Verlauf"

Die Seite Build-Verlauf wird eingeblendet. Sie enthält eine Liste Ihrer letzten Builds.

Wenn Sie Builds nach Region filtern möchten, wählen Sie oben auf der Seite im Drop-down-Menü Region die Region aus, nach der Sie filtern möchten.

Sie können Builds auch filtern, indem Sie oben auf der Seite das Textfeld Builds filtern verwenden oder manuell eine Abfrage eingeben.

Verwenden Sie die Spaltenauswahl , um weitere Spalten wie Triggerbeschreibung und Artefakte zu sehen.

Wenn Sie Details zu einem bestimmten Build aufrufen möchten, klicken Sie auf Build-Verlauf und anschließend auf einen bestimmten Build. Die Seite Build-Details wird mit der Build-Zusammenfassung für Ihren Build angezeigt. Die Build-Zusammenfassung umfasst:

  • Build-Log ist das Log Ihres Builds.
  • Ausführungsdetails beschreiben die Details Ihres Builds einschließlich der Umgebungsvariablen und Substitutionen.
  • Build-Artefakte sind die Artefakte Ihres Builds wie Container-Images, Build-Logs oder Binärdateien.

Sie können das Build-Log oder die Ausführungsdetails für einen Build-Schritt aufrufen, indem Sie den Schritt links in der Tabelle Schritte auswählen.

gcloud

Der Befehl gcloud builds list zeigt Ihre gesamten Builds an.

Führen Sie den folgenden Befehl aus, um sich Ihre Builds anzusehen:

gcloud builds list

Die Ausgabe sollte in etwa so aussehen:

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

Führen Sie den folgenden Befehl aus, um sich Details zu einem bestimmten Build anzusehen:

gcloud builds describe [BUILD_ID]

Dabei ist [BUILD_ID] die ID des Builds, für den Sie Details abrufen möchten.

Die Ausgabe sollte in etwa so aussehen:

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'

Schrittstatus und Build-Status

Sobald ein Build abgeschlossen ist, stellt Cloud Build einen allgemeinen status für den Build und einen status für jeden einzelnen Build-Schritt bereit.

In der folgenden Tabelle sind die Status aufgeführt, die vorkommen können, wenn ein Build oder ein Schritt erfolgreich ist, das Zeitlimit überschreitet oder fehlschlägt:

Ereignis Build-Status Schrittstatus
Build erfolgreich SUCCESS Alle Schritte sind mit SUCCESS markiert.
Build ist erfolgreich, fehlgeschlagene Schritte sind zulässig SUCCESS
  • Der Build ist mit SUCCESS gekennzeichnet.
  • Fehlgeschlagene Schritte, die mit allowFailure oder allowExitCodes konfiguriert wurden, sind als FAILED markiert.
Build schlägt fehl FAILURE
  • Der fehlgeschlagene Schritt ist mit FAILED markiert.
  • Schritte, die vor der Beendigung des Builds erfolgreich sind, sind mit SUCCESS markiert.
  • Schritte, mit deren Ausführung schon begonnen wurde, sind mit CANCELLED markiert.
  • Schritte, deren Ausführung nicht gestartet wird, sind mit QUEUED markiert.
Build wird vom Nutzer abgebrochen CANCELLED
  • Schritte, die vor dem Abbruch des Builds erfolgreich waren, sind mit SUCCESS markiert.
  • Schritte, mit deren Ausführung schon begonnen wurde, sind mit CANCELLED markiert.
  • Schritte, deren Ausführung nicht gestartet wird, sind mit QUEUED markiert.
Build überschreitet Zeitlimit TIMEOUT
  • Schritte, die vor dem Zeitlimit des Builds erfolgreich waren, sind mit SUCCESS markiert.
  • Schritte, mit deren Ausführung schon begonnen wurde, sind mit CANCELLED markiert.
  • Schritte, deren Ausführung nicht gestartet wird, sind mit QUEUED markiert.
Schritt überschreitet Zeitlimit FAILED
  • Der Schritt, bei dem das Zeitlimit überschritten wird, ist mit TIMEOUT gekennzeichnet.
  • Schritte, die erfolgreich waren, bevor der entsprechende Schritt das Zeitlimit überschreitet, sind mit SUCCESS markiert.
  • Schritte, mit deren Ausführung schon begonnen wurde, sind mit CANCELLED markiert.
  • Schritte, deren Ausführung nicht gestartet wird, sind mit QUEUED markiert.

Führen Sie den Befehl gcloud builds describe aus, damit Ihnen der Status für die einzelnen Schritte und für den Build angezeigt wird:

gcloud builds describe [BUILD_ID]

Dabei ist [BUILD_ID] die ID des Builds.

Das folgende Snippet zeigt den schrittspezifischen Status aus einem Build, wenn ein Schritt das Zeitlimit überschreitet:

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

Build-Ergebnisse mithilfe von Abfragen filtern

Wenn Sie Informationen zu Builds finden möchten, die bestimmten Kriterien entsprechen, geben Sie in der Google Cloud Console auf der Seite Build-Verlauf einen Abfragestring im Feld Builds filtern an. Sie können damit beispielsweise Builds abfragen, die fehlgeschlagen sind (und im Statusfeld den Wert FAILURE enthalten), nach einem bestimmten Zeitpunkt erstellt wurden, getaggt sind usw.

Unterstützte Felder für Abfragen

Sie können Builds anhand der Werte der folgenden Felder abfragen:

  • 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

Felder mit einem Punkt (.) sind untergeordnete Felder.

Abfragestring erstellen

Abfragestrings sehen generell so aus:

field="value"

Benutzen Sie Punkte, um ein untergeordnetes Feld zu definieren, z. B. results.images.name. Abfragen unterstützen die Vergleichsoperatoren = und != sowie >, >=, < und <= für Felder mit numerischen Werten (wie create_time).

Sie können kumulierende Abfragen erstellen, indem Sie die booleschen Ausdrücke AND und OR verwenden.

Beispiele für häufige Abfragen

So fragen Sie alle erfolgreichen Builds ab:

status="SUCCESS"

So fragen Sie alle Builds ab, die noch nicht abgeschlossen sind:

status="QUEUED" OR status="WORKING"

So fragen Sie Builds ab, die bei Fertigstellung einen angegebenen Image-Namen haben:

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

So rufen Sie alle Builds mit dem Tag "prod" ab:

tags="prod"

So fragen Sie Builds ab, die als überprüft markiert wurden:

options.requested_verify_option="VERIFIED"

So fragen Sie Builds ab, die aus einer Quelle in Cloud Storage (statt aus einem Cloud Source Repository) stammen:

source.storage_source.bucket!=""

So fragen Sie Builds ab, die bei Fertigstellung ein angegebenes Digest haben:

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

So fragen Sie Builds ab, die nach einem bestimmten Zeitpunkt gestartet und vor einem bestimmten Zeitpunkt beendet wurden (UTC-Zeitzone):

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

Build-Ergebnisse mithilfe von Tags filtern

Mit Tags in Ihren Konfigurationsdateien können Sie Builds in Gruppen organisieren und filtern. Sie können Strings in Tags angeben, z. B. "prod" oder "test".

Für Tags gelten folgende Einschränkungen:

  • Tags dürfen maximal 128 Zeichen lang sein.
  • Sie können maximal 64 Tags pro Build definieren.
  • Tags können Buchstaben, Zahlen und Unterstriche an beliebiger Position des Strings enthalten.
  • Tags können Punkte und Bindestriche an jeder Position außer der ersten Position des Strings enthalten.

So fügen Sie Tags zu Ihrem Build hinzu:

  1. Fügen Sie in Ihre Build-Konfigurationsdatei das Feld tags ein:

    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. Verwenden Sie die Option --filter in gcloud builds list, um getaggte Builds in Ihrem Cluster anzuzeigen Sie können Builds filtern, wenn Sie ein einzelnes Tag oder mehrere Tags angeben.

    • Wenn Sie Builds nach einem einzelnen Tag filtern möchten, geben Sie das Tag als String im Feld tags an. Mit dem folgenden Befehl werden alle mit 'test1' getaggten Builds aufgelistet:

       gcloud builds list --filter "tags='test1'"
      
    • Wenn Sie Builds nach mehreren Tags filtern möchten, verwenden Sie "AND", "OR" oder "NOT" zur Auflistung der Tags. Mit dem folgenden Befehl werden alle Builds aufgelistet, die mit 'test1' oder 'test2' und mit 'test3' getaggt sind:

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

    Die Ausgabe nach der Ausführung dieser Befehle sollte in etwa so aussehen:

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

Nächste Schritte