Ver resultados de compilación

En esta página, se explica cómo ver información sobre tus compilaciones de Cloud Build con la consola de Google Cloud, la herramienta de línea de comandos de gcloud y la API de Cloud Build.

Antes de comenzar

Si deseas usar los ejemplos de la línea de comandos de esta guía, instala la herramienta de línea de comando de gcloud.

Ver resultados de compilación

Para ver los registros de compilación, las principales requieren una de las siguientes funciones de IAM, además de los permisos de IAM de Cloud Build:

Si quieres obtener más información sobre los permisos necesarios para ver los registros de compilación en Cloud Build, GitHub o GitHub Enterprise después de crear el activador, consulta Visualiza registros de compilación.

Consola

En la consola de Google Cloud, el menú Historial de compilación puede mostrarte información sobre el estado de una compilación (como el éxito o el fracaso), la fuente, los resultados, la fecha de creación, las imágenes y mucho más.

Para ver el menú Historial de compilación, abre la página Historial de compilación en la consola de Google Cloud:

Abrir la página Historial de compilación

Se muestra la página de Historial de compilación, que contiene una lista de tus compilaciones recientes.

Para filtrar compilaciones por región, usa el menú desplegable Región en la parte superior de la página y elige la región según la que deseas filtrar.

También puedes filtrar compilaciones con el cuadro de texto Filtrar compilaciones en la parte superior de la página, o bien ingresando una consulta de forma manual.

Para ver columnas adicionales, como Descripción del activador y Artefactos, usa el selector de columnas .

Para ver los detalles de una compilación específica, ve al Historial de compilación y haz clic en una compilación en particular. Se mostrará la página Detalles de compilación con el Resumen de compilación de tu compilación. El Resumen de compilación incluye las siguientes secciones:

  • Registro de compilación: El registro de la compilación
  • Detalles de ejecución: Los detalles de la compilación, incluidas las variables de entorno y las sustituciones
  • Artefactos de compilación: Los artefactos de la compilación, como imágenes de contenedores, objetos binarios o registros de compilación

Para ver el registro de compilación o los detalles de ejecución específicos de un paso de compilación, selecciona el paso en la tabla Pasos que se encuentra a la izquierda.

gcloud

Con el comando gcloud builds list, se muestran todas las compilaciones.

Para ver tus compilaciones, ejecuta el siguiente comando:

gcloud builds list

Deberías ver un resultado similar al siguiente:

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

Para obtener detalles sobre una compilación específica, ejecuta el siguiente comando:

gcloud builds describe [BUILD_ID]

en el que [BUILD_ID] es el ID de la compilación cuyos detalles deseas obtener.

Deberías ver un resultado similar al siguiente:

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'

Estado de los pasos y de la compilación

Una vez que se completa una compilación, Cloud Build proporciona un status general de la compilación y un status de cada paso de compilación individual.

En la siguiente tabla, se resumen los estados cuando una compilación o un paso tienen éxito, agotan el tiempo de espera o fallan:

Evento Estado de la compilación Estado del paso
La compilación tiene éxito SUCCESS Todos los pasos se marcan como SUCCESS.
La compilación se realiza de forma correcta cuando se permiten pasos con errores SUCCESS
  • La compilación se marca como SUCCESS.
  • Los pasos con errores configurados con allowFailure o allowExitCodes se marcan como FAILED.
La compilación falla FAILURE
  • El paso con errores se marca como FAILED.
  • Los pasos que tienen éxito antes de la finalización de la compilación se marcan como SUCCESS.
  • Los pasos que se encontraban en ejecución se marcan como CANCELLED.
  • Los pasos que no comienzan a ejecutarse se marcan como QUEUED.
El usuario cancela la compilación CANCELLED
  • Los pasos que tienen éxito antes de la cancelación de la compilación se marcan como SUCCESS.
  • Los pasos que se encontraban en ejecución se marcan como CANCELLED.
  • Los pasos que no comienzan a ejecutarse se marcan como QUEUED.
Se agota el tiempo de espera de la compilación TIMEOUT
  • Los pasos que tienen éxito antes de que se agote el tiempo de espera de la compilación se marcan como SUCCESS.
  • Los pasos que se encontraban en ejecución se marcan como CANCELLED.
  • Los pasos que no comienzan a ejecutarse se marcan como QUEUED.
Se agota el tiempo de espera de un paso FAILED
  • El paso que agota el tiempo de espera se marca como TIMEOUT.
  • Los pasos que se realizaron de forma correcta antes del paso que agotó el tiempo de espera se marcan como SUCCESS.
  • Los pasos que se encontraban en ejecución se marcan como CANCELLED.
  • Los pasos que no comienzan a ejecutarse se marcan como QUEUED.

Para ver el estado de compilación y de cada paso, ejecuta el comando gcloud builds describe:

gcloud builds describe [BUILD_ID]

en el que [BUILD_ID] es el ID de la compilación.

El siguiente fragmento muestra el estado de cada paso de una compilación con un paso que agotó el tiempo de espera:

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 los resultados de compilación con consultas

A fin de encontrar información sobre las compilaciones que se ajusten a criterios específicos, proporciona una cadena de consulta en el campo Filtrar compilaciones en la página Historial de compilación en la consola de Google Cloud. Por ejemplo, puedes consultar las compilaciones que fallaron (que tienen un valor FAILURE en el campo de estado), las que se crearon después de un tiempo determinado, las etiquetadas y otras condiciones similares.

Campos compatibles con las consultas

Puedes consultar compilaciones según los valores de los siguientes campos:

  • 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

Los campos enumerados con notación de puntos (.) son subcampos.

Construye una string de consulta

En las strings de consulta, se usa el siguiente formato general:

field="value"

Usa la notación de puntos para especificar un subcampo, como results.images.name. Las consultas admiten los operadores de comparación = y !=, así como >>=<, y <= para los campos que tienen valores numéricos (como create_time).

Puedes crear consultas compuestas con las expresiones booleanas AND y OR.

Consultas de ejemplo comunes

Consulta sobre las compilaciones exitosas:

status="SUCCESS"

Consulta sobre las compilaciones que aún no finalizaron:

status="QUEUED" OR status="WORKING"

Consulta sobre las compilaciones que tienen un nombre de imagen de resultado determinado:

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

Consulta todas las compilaciones con la etiqueta "prod":

tags="prod"

Consulta sobre las compilaciones que se marcaron como verificadas:

options.requested_verify_option="VERIFIED"

Consulta sobre las compilaciones que provienen de una fuente en Cloud Storage (en lugar de Cloud Source Repository):

source.storage_source.bucket!=""

Consulta sobre las compilaciones con un resumen de resultados determinado:

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

Para consultar sobre las compilaciones iniciadas después de una hora específica y finalizadas antes de otra hora determinada (zona horaria UTC), usa lo siguiente:

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

Filtra los resultados de las compilaciones mediante etiquetas

Puedes usar etiquetas en tus archivos de configuración, lo que te permite organizar tus compilaciones en grupos y filtrarlas. Puedes especificar strings en las etiquetas, como "prod" o "test".

Las etiquetas tienen las siguientes limitaciones:

  • El límite de caracteres de cada etiqueta es de 128.
  • Puedes definir un máximo de 64 etiquetas por compilación.
  • Las etiquetas pueden contener letras, números y guiones bajos en cualquier posición de la string.
  • Las etiquetas pueden contener puntos y guiones en cualquier posición, excepto la primera posición de tu string.

Para agregar etiquetas en tu compilación, haz lo siguiente:

  1. En tu archivo de configuración de compilación, agrega el 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. Para ver las compilaciones etiquetadas en tu clúster, usa la opción --filter en gcloud builds list. Para filtrar compilaciones, especifica una o varias etiquetas.

    • Para filtrar compilaciones con una sola etiqueta, especifica la etiqueta como una string en el campo tags. Con el siguiente comando, se enumeran todas las compilaciones etiquetadas con 'test1':

       gcloud builds list --filter "tags='test1'"
      
    • A fin de filtrar las compilaciones mediante varias etiquetas, usa “AND”, “OR” o “NOT” para enumerar las etiquetas. Con el siguiente comando, se enumeran todas las compilaciones etiquetadas con 'test1', 'test2' o 'test3':

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

    Deberías ver un resultado similar al siguiente después de ejecutar estos comandos:

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

¿Qué sigue?