查看建構結果

本頁面說明如何使用 Google Cloud Platform 主控台、gcloud 指令列工具與 Cloud Build API 查看 Cloud Build 建構的相關資訊。

事前準備

查看建構結果

主控台

GCP 主控台的「Build History」(建構歷史記錄) 選單可以顯示建構狀態 (例如成功或失敗)、來源、結果、建立時間、映像檔等相關資訊。

如要查看「Build History」(建構歷史記錄) 選單:

  1. 在 Google Cloud Platform 主控台開啟「Build History」(建構歷史記錄) 頁面。

    開啟建構歷史記錄頁面

    系統隨即顯示「Build History」(建構歷史記錄) 頁面,其中包含最近建構的清單。

如要查看特定建構的相關詳細資料

  1. 在「Build History」(建構歷史記錄) 頁面中,按一下特定建構。

    系統隨即顯示「Build details」(建構詳細資料) 頁面,其中包含該建構的詳細資料,例如「Status」(狀態)、「Build Id」(建構 ID) 等。

gcloud

gcloud builds list` 指令可顯示所有建構。

如要查看您的建構,請執行以下指令:

gcloud builds list

畫面會顯示類似以下的輸出:

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  gcr.io/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  gcr.io/gcb-docs-project/quickstart-image (+1 more)  SUCCESS

如要查看特定建構的相關詳細資料,請執行以下指令:

gcloud builds describe [BUILD_ID]

其中 [BUILD_ID] 是您要取得詳細資料的建構 ID。

畫面會顯示類似以下的輸出:

createTime: '2018-02-22T14:49:54.066666971Z'
finishTime: '2018-02-22T14:50:05.463758Z'
id: bcdb9c48-d92c-4489-a3cb-08d0f0795a0b
images:
- gcr.io/gcb-docs-project/quickstart-image
logUrl: https://console.cloud.google.com/gcr/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: gcr.io/gcb-docs-project/quickstart-image
      pushTiming:
          endTime: '2018-02-22T14:50:04.731919081Z'
          startTime: '2018-02-22T14:50:00.874058710Z'
      - digest: sha256:1b2a237e74589167e4a54a8824f0d03d9f66d3c7d9cd172b36daa5ac42e94eb9
        name: gcr.io/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
  - gcr.io/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'

步驟狀態與建構狀態

建構完成之後,Cloud Build 會提供建構的整體 status 和每一個建構步驟的 status

下表大致列出了建構或步驟成功、逾時或失敗時的狀態:

事件 建構狀態 步驟狀態
建構成功 SUCCESS 所有步驟都標示了 SUCCESS
建構失敗 FAILURE
  • 失敗的步驟會標示 FAILED
  • 在建構終止之前成功的步驟會標示 SUCCESS
  • 執行過程中的步驟會標示 CANCELLED
  • 尚未開始執行的步驟會標示 QUEUED
使用者取消建構 CANCELLED
  • 在取消建構之前成功的步驟會標示 SUCCESS
  • 執行過程中的步驟會標示 CANCELLED
  • 尚未開始執行的步驟會標示 QUEUED
建構逾時 TIMEOUT
  • 在建構逾時之前成功的步驟會標示 SUCCESS
  • 執行過程中的步驟會標示 CANCELLED
  • 尚未開始執行的步驟會標示 QUEUED
步驟逾時 FAILED
  • 逾時的步驟會標示 TIMEOUT
  • 在逾時的步驟之前成功的步驟會標示 SUCCESS
  • 執行過程中的步驟會標示 CANCELLED
  • 尚未開始執行的步驟會標示 QUEUED

如要查看每個步驟與建構的狀態,請執行 gcloud builds describe 指令:

gcloud builds describe [BUILD_ID]

其中 [BUILD_ID] 是建構的 ID。

以下程式碼片段示範建構中步驟逾時的每個步驟狀態:

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

使用查詢篩選建構結果

如要尋找符合特定條件的建構資訊,請在 Google Cloud Platform 主控台的「Build history」(建構歷史記錄) 頁面,於「Filter Builds」(篩選建構) 欄位中提供查詢字串。例如,您可以查詢失敗的建構 (狀態欄位值為 FAILURE 的建構)、在某一時間之後建立的建構、加上標記的建構和其他諸如此類的條件。

查詢的支援欄位

您可以根據下列欄位的值查詢建構:

  • 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

以點標記法 (.) 列出的欄位為子欄位。

建構查詢字串

查詢字串使用一般格式:

field="value"

請使用點標記法來指定子欄位,例如 results.images.name。查詢支援 =!= 比較運算子,對於有數值的欄位 (例如 create_time),也支援 >>=<<=

您可以使用布林 ANDOR 運算式來建立複合式查詢。

常見範例查詢

如要查詢所有成功的建構:

status="SUCCESS"

如要查詢所有尚未完成的建構:

status="QUEUED" OR status="WORKING"

如要查詢具有特定結果映像檔名稱的建構:

(status="SUCCESS" OR status="FAILURE") AND \
    results.images.name="gcr.io/argo-integration-testing/stubby-probe"

如要查詢所有加上 "prod" 標記的建構:

tags="prod"

如要查詢標記為已驗證的建構:

options.requested_verify_option="VERIFIED"

如要查詢來自 Cloud Storage 來源 (相對於 Cloud Source Repository) 的建構:

source.storage_source.bucket!=""

如要查詢具有特定結果摘要的建構:

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

如要查詢在特定時間 (世界標準時間時區) 之後開始,並在特定時間之前完成的建構:

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

使用標記篩選建構結果

您可在設定檔中使用標記,讓您為建構分組,並篩選建構。您可在標記中指定字串,例如 "prod""test"

標記的限制如下:

  • 每個標記的字元上限為 128 個字元
  • 您最多可為每個建構定義 64 個標記
  • 標記由字母、數字和底線組成

如要在建構中加上標記

  1. 在您的建構設定檔中,新增 tags 欄位:

    steps:
    - name: 'gcr.io/cloud-builders/docker'
      args: [ 'build', '-t', 'gcr.io/$PROJECT_ID/cb-demo-img', '.' ]
    images:
    - 'gcr.io/$PROJECT_ID/cb-demo-img'
    tags:
    - "test"
    - "tag2"
    
  2. 如要查看叢集中加上標記的建構,請在 gcloud builds list 中使用 --filter 選項。例如,下列指令便列出了所有加上 'test' 標記的建構:

    gcloud builds list --filter "tags='test'"
    

    畫面會顯示類似以下的輸出:

    ID                                    CREATE_TIME                DURATION  SOURCE                                                                             IMAGES                                 STATUS
    d33a9895-...                          ...                        1M45S     gs://...                                                                           gcr.io/...                             SUCCESS
    

後續步驟

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Build