Afficher les résultats de compilation

Cette page explique comment afficher des informations sur votre instance Cloud Build à l'aide de la console Google Cloud, de l'outil de ligne de commande gcloud et de l'API API Cloud Build.

Avant de commencer

Si vous voulez utiliser les exemples de ligne de commande de ce guide, installez l'outil de ligne de commande gcloud.

Afficher les résultats de compilation

Pour afficher les journaux de compilation, les comptes principaux nécessitent l'un des rôles IAM suivants en plus des autorisations IAM Cloud Build :

Pour en savoir plus sur les autorisations nécessaires pour afficher les journaux de compilation dans Cloud Build ou GitHub ou GitHub Enterprise après la création d'un déclencheur, consultez la section Afficher les journaux de compilation.

Console

Dans la console Google Cloud, le menu Historique de compilation vous indique des informations sur l'état d'une compilation (comme la réussite ou l'échec), la source, les résultats, la création, les images, etc.

Pour afficher le menu Historique de compilation, ouvrez la page Historique de compilation dans la console Google Cloud:

Ouvrir la page Historique de compilation

La page Historique de compilation s'affiche. Elle contient une liste de vos dernières compilations.

Pour filtrer les compilations par région, utilisez le menu déroulant Région situé en haut de la page pour choisir la région selon laquelle filtrer.

Vous pouvez également filtrer les builds à l'aide de la zone de texte Filtrer les builds située en haut de la page ou en saisissant une requête manuellement.

Pour afficher des colonnes supplémentaires telles que Description du déclencheur et Artefacts, utilisez le sélecteur de colonne .

Pour afficher les détails d'une compilation spécifique, accédez à l'Historique de compilation et cliquez sur une compilation spécifique. La page Informations sur le build s'affiche, avec le Résumé de la compilation propre à votre compilation. Le Résumé de la compilation comprend les éléments suivants :

  • Le journal de compilation, qui est le journal de votre compilation.
  • Les détails de l'exécution, qui présentent les détails de votre compilation, y compris vos variables d'environnement et vos substitutions.
  • Les artefacts de compilation, qui sont les artefacts de votre compilation, tels que les images de conteneurs, les journaux de compilation ou les binaires.

Vous pouvez afficher le journal de compilation ou les détails de l'exécution propres à l'étape de compilation en la sélectionnant dans le tableau Steps (Étapes) à gauche.

gcloud

La commande gcloud builds list affiche toutes vos compilations.

Pour afficher vos compilations, exécutez la commande suivante :

gcloud builds list

Un résultat semblable aux lignes suivantes doit s'afficher :

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

Pour afficher les détails d'une compilation spécifique, exécutez la commande suivante :

gcloud builds describe [BUILD_ID]

où [BUILD_ID] est l'ID de la compilation dont vous souhaitez obtenir des détails.

Un résultat semblable aux lignes suivantes doit s'afficher :

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'

État de l'étape et état de la compilation

Une fois la compilation terminée, Cloud Build fournit un état (status) général pour la compilation et un état (status) pour chaque étape de la compilation.

Le tableau suivant récapitule les états en cas de réussite, d'expiration ou d'échec d'une compilation ou d'une étape :

Événement État de la compilation État de l'étape
La compilation réussit SUCCESS Toutes les étapes sont marquées SUCCESS.
La compilation réussit avec des étapes ayant échoué autorisées SUCCESS
  • La compilation est marquée SUCCESS.
  • Les étapes ayant échoué configurées avec allowFailure ou allowExitCodes sont marquées comme FAILED.
La compilation échoue FAILURE
  • L'étape ayant échoué est marquée comme FAILED.
  • Les étapes qui ont réussi avant la fin de la compilation sont marquées comme SUCCESS.
  • Les étapes en cours d'exécution sont marquées comme CANCELLED.
  • Les étapes qui ne commencent pas à s'exécuter sont marquées QUEUED.
La compilation est annulée par l'utilisateur CANCELLED
  • Les étapes qui réussissent avant l'annulation de la compilation sont marquées comme SUCCESS.
  • Les étapes en cours d'exécution sont marquées comme CANCELLED.
  • Les étapes qui ne commencent pas à s'exécuter sont marquées QUEUED.
La compilation expire TIMEOUT
  • Les étapes qui réussissent avant l'expiration de la compilation sont marquées comme SUCCESS.
  • Les étapes en cours d'exécution sont marquées comme CANCELLED.
  • Les étapes dont l'exécution ne commence pas sont marquées comme QUEUED.
L'étape expire FAILED
  • L'étape ayant expiré est marquée TIMEOUT.
  • Les étapes qui réussissent avant l'expiration de l'étape sont marquées comme SUCCESS.
  • Les étapes en cours d'exécution sont marquées comme CANCELLED.
  • Les étapes dont l'exécution ne commence pas sont marquées comme QUEUED.

Pour afficher l'état par étape et l'état général de la compilation, exécutez la commande gcloud builds describe :

gcloud builds describe [BUILD_ID]

où [BUILD_ID] est l'ID de la compilation.

L'extrait de code suivant montre l'état par étape d'une compilation avec une étape expirée :

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

Filtrer les résultats de compilation à l'aide de requêtes

Pour rechercher des informations sur les compilations qui répondent à des critères spécifiques, fournissez une chaîne de requête dans le champ Filtrer les compilations de la page Historique de compilation de console Google Cloud. Par exemple, vous pouvez rechercher les compilations qui ont échoué (leur champ état vaut FAILURE), les compilations créées après une certaine date, les compilations portant certaines balises, et d'autres critères similaires.

Champs pris en charge pour les requêtes

Vous pouvez rechercher des compilations en fonction des valeurs des champs suivants :

  • 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

Les champs répertoriés comportant un point (.) sont des sous-champs.

Créer une chaîne de requête

Les chaînes de requête utilisent la forme générale :

field="value"

Utilisez la notation par points pour spécifier un sous-champ, tel que results.images.name. Les requêtes acceptent les opérateurs de comparaison = et !=, ainsi que >, >=, <, et <= pour les champs qui contiennent des valeurs numériques (par exemple create_time).

Vous pouvez créer des requêtes composées à l'aide des expressions booléennes AND et OR.

Exemples de requêtes courantes

Pour rechercher toutes les compilations réussies :

status="SUCCESS"

Pour rechercher toutes les compilations qui ne sont pas encore terminées :

status="QUEUED" OR status="WORKING"

Pour rechercher les compilations avec un nom d'image de résultat donné :

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

Pour rechercher toutes les compilations avec le tag "prod" :

tags="prod"

Pour rechercher les compilations marquées comme vérifiées :

options.requested_verify_option="VERIFIED"

Pour rechercher les compilations provenant d'une source de Cloud Storage (par opposition à un dépôt Cloud Source Repositories) :

source.storage_source.bucket!=""

Pour rechercher les compilations avec un récapitulatif des résultats donné :

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

Pour rechercher les compilations démarrées après une heure spécifique et terminées avant une heure spécifique (fuseau horaire UTC) :

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

Filtrer les résultats de compilation à l'aide de tags

Vous pouvez utiliser des balises dans vos fichiers de configuration pour regrouper les compilations et filtrer les compilations. Vous pouvez spécifier des chaînes de caractères dans les balises, par exemple "prod" ou "test".

Les balises sont soumises aux limites suivantes :

  • La limite de caractères de chaque tag est de 128 caractères
  • Une compilation ne peut pas porter plus de 64 balises.
  • Les balises peuvent contenir des lettres, des chiffres et des traits de soulignement à n'importe quelle position dans la chaîne.
  • Elles peuvent également contenir des points et des tirets, sauf en tête de chaîne.

Pour ajouter des balises à votre compilation, suivez les étapes suivantes :

  1. Dans le fichier de configuration de votre compilation, ajoutez le champ 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. Pour afficher les compilations portant des balises dans votre cluster, utilisez l'option --filter dans la commande gcloud builds list. Vous pouvez filtrer les compilations en spécifiant une ou plusieurs balises.

    • Pour filtrer les compilations portant une seule balise, spécifiez la balise sous forme de chaîne dans le champ tags. La commande suivante répertorie toutes les compilations portant la balise 'test1' :

       gcloud builds list --filter "tags='test1'"
      
    • Pour filtrer les compilations selon plusieurs balises, utilisez "AND", "OR" ou "NOT" pour combiner les balises entre elles. La commande suivante répertorie toutes les compilations portant la balise 'test3' ainsi que la balise 'test1' ou 'test2'.

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

    Après l'exécution de ces commandes, le résultat qui s'affiche ressemble à :

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

Étape suivante