Melihat hasil build

Halaman ini menjelaskan cara melihat informasi tentang build Cloud Build menggunakan konsol Google Cloud , alat command line gcloud, dan Cloud Build API.

Sebelum memulai

Jika Anda ingin menggunakan contoh command line dalam panduan ini, instal alat command line gcloud.

Melihat hasil build

Untuk melihat log build, akun utama memerlukan salah satu peran IAM berikut selain izin IAM Cloud Build:

Untuk mengetahui informasi selengkapnya tentang izin yang diperlukan untuk melihat log build di Cloud Build atau GitHub atau GitHub Enterprise setelah pembuatan pemicu, lihat Melihat log build.

Konsol

Di konsol Google Cloud , menu Build History dapat menampilkan informasi tentang status build (seperti berhasil atau gagal), sumber, hasil, waktu pembuatan, gambar, dan lainnya.

Untuk melihat menu Build History, buka halaman Build History di konsol Google Cloud :

Buka halaman Histori Build

Halaman Histori build akan ditampilkan, yang menunjukkan daftar build terbaru Anda.

Anda dapat memfilter build menggunakan kolom Filter, atau dengan memasukkan kueri.

Untuk melihat kolom tambahan seperti Deskripsi pemicu dan Artefak, gunakan pemilih kolom .

Untuk melihat detail tentang build tertentu, buka Histori Build dan klik build yang ditentukan. Halaman Build details akan ditampilkan, dengan Build Summary untuk build Anda. Ringkasan Build mencakup:

  • Log Build: Log build Anda.
  • Detail Eksekusi: Detail build Anda, termasuk variabel dan penggantian lingkungan.
  • Membangun dependensi: Jika build Anda memiliki satu atau beberapa dependensi, tab ini akan menampilkan informasi dependensi seperti URL dan revisi repositori.
  • Artefak Build: Artefak build Anda, seperti image container, log build, atau biner.

Anda dapat melihat log build atau detail eksekusi khusus untuk langkah build dengan memilih langkah di tabel Langkah di sebelah kiri.

gcloud

Perintah gcloud builds list menampilkan semua build Anda.

Untuk melihat build Anda, jalankan perintah berikut:

gcloud builds list

Anda akan melihat output yang mirip dengan berikut ini:

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

Untuk melihat detail tentang build tertentu, jalankan perintah berikut:

gcloud builds describe [BUILD_ID]

dengan [BUILD_ID] adalah ID build yang ingin Anda dapatkan detailnya.

Anda akan melihat output yang mirip dengan berikut ini:

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'

Status langkah dan status build

Setelah build selesai, Cloud Build memberikan status keseluruhan untuk build dan status untuk setiap langkah build.

Tabel berikut meringkas status saat build atau langkah berhasil, waktunya habis, atau gagal:

Acara Status Build Status Langkah
Build berhasil SUCCESS Semua langkah ditandai dengan SUCCESS.
Build berhasil dengan langkah-langkah yang gagal diizinkan SUCCESS
Build gagal FAILURE
  • Langkah yang gagal ditandai dengan FAILED.
  • Langkah-langkah yang berhasil sebelum penghentian build ditandai dengan SUCCESS.
  • Langkah-langkah di tengah eksekusi ditandai dengan CANCELLED.
  • Langkah-langkah yang tidak mulai dieksekusi ditandai dengan QUEUED.
Build dibatalkan oleh pengguna CANCELLED
  • Langkah-langkah yang berhasil sebelum pembatalan build ditandai dengan SUCCESS.
  • Langkah-langkah di tengah eksekusi ditandai dengan CANCELLED.
  • Langkah-langkah yang tidak mulai dieksekusi ditandai dengan QUEUED.
Membangun waktu TIMEOUT
  • Langkah-langkah yang berhasil sebelum build kehabisan waktu ditandai dengan SUCCESS.
  • Langkah-langkah di tengah eksekusi ditandai dengan CANCELLED.
  • Langkah-langkah yang tidak mulai dieksekusi ditandai dengan QUEUED.
Langkah habis waktu FAILED
  • Langkah yang waktunya habis ditandai dengan TIMEOUT.
  • Langkah-langkah yang berhasil sebelum langkah yang waktunya habis ditandai dengan SUCCESS.
  • Langkah-langkah di tengah eksekusi ditandai dengan CANCELLED.
  • Langkah-langkah yang tidak mulai dieksekusi ditandai dengan QUEUED.

Untuk melihat status per langkah dan build, jalankan perintah gcloud builds describe:

gcloud builds describe <var>BUILD_ID</var>

dengan BUILD_ID adalah ID build.

Cuplikan berikut menunjukkan status per langkah dari build dengan langkah yang waktunya habis:

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

Memfilter hasil build menggunakan kueri

Untuk menemukan informasi tentang build yang sesuai dengan kriteria tertentu, berikan string kueri di kolom Filter Build di halaman Build history di Google Cloud console. Misalnya, Anda dapat membuat kueri untuk build yang gagal (yang memiliki nilai FAILURE di kolom status), build yang dibuat setelah waktu tertentu, build yang diberi tag, dan kondisi lainnya.

Kolom yang didukung untuk kueri

Anda dapat membuat kueri untuk build berdasarkan nilai kolom berikut:

  • 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

Kolom yang tercantum dengan notasi titik (.) adalah sub-kolom.

Membuat string kueri

String kueri menggunakan bentuk umum:

field="value"

Gunakan notasi titik untuk menentukan sub-bidang, seperti results.images.name. Kueri mendukung operator perbandingan = dan !=, serta >, >=, <, dan <= untuk kolom yang memiliki nilai numerik (seperti create_time).

Anda dapat membuat kueri gabungan menggunakan ekspresi boolean AND dan OR.

Contoh kueri umum

Untuk membuat kueri semua build yang berhasil:

status="SUCCESS"

Untuk membuat kueri semua build yang belum selesai:

status="QUEUED" OR status="WORKING"

Untuk membuat kueri build dengan nama gambar hasil tertentu:

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

Untuk membuat kueri semua build dengan tag "prod":

tags="prod"

Untuk membuat kueri build yang ditandai sebagai terverifikasi:

options.requested_verify_option="VERIFIED"

Untuk membuat kueri build yang berasal dari sumber di Cloud Storage (bukan dari Cloud Source Repositories):

source.storage_source.bucket!=""

Untuk membuat kueri build dengan ringkasan hasil tertentu:

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

Untuk membuat kueri build yang dimulai setelah waktu tertentu dan selesai sebelum waktu tertentu (zona waktu UTC):

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

Memfilter hasil build menggunakan tag

Anda dapat menggunakan tag dalam file konfigurasi, yang memungkinkan Anda mengatur build ke dalam grup dan memfilter build. Anda dapat menentukan string dalam tag, seperti "prod" atau "test".

Tag memiliki batasan berikut:

  • Batas karakter setiap tag adalah 128 karakter
  • Anda dapat menentukan maksimum 64 tag per build
  • Tag dapat berisi huruf, angka, dan garis bawah di posisi mana pun dalam string Anda.
  • Tag dapat berisi titik dan tanda hubung di posisi mana pun kecuali posisi pertama string Anda.

Untuk menambahkan tag dalam build Anda:

  1. Di file konfigurasi build, tambahkan kolom 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. Untuk melihat build yang diberi tag di cluster Anda, gunakan opsi --filter di gcloud builds list. Anda dapat memfilter build dengan menentukan satu tag atau beberapa tag.

    • Untuk memfilter build menurut satu tag, tentukan tag sebagai string di kolom tags. Perintah berikut mencantumkan semua build yang diberi tag 'test1':

       gcloud builds list --filter "tags='test1'"
      
    • Untuk memfilter build menurut beberapa tag, gunakan "AND", "OR", atau "NOT" untuk mencantumkan tag. Perintah berikut mencantumkan semua build yang diberi tag dengan 'test1' atau 'test2' dan diberi tag dengan 'test3':

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

    Anda akan melihat output yang mirip dengan berikut setelah menjalankan perintah ini:

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

Langkah berikutnya