ビルド結果を表示する

このページでは、Google Cloud コンソールを使用して Cloud Build ビルド、gcloud コマンドライン ツール、Cloud Build API に関する情報を表示する方法を説明します。

準備

このガイドのコマンドラインの例を使用する場合、gcloud コマンドライン ツールをインストールしてください。

ビルド結果を表示する

ビルドログを表示するには、プリンシパルが Cloud Build IAM 権限に加えて、次のいずれかの IAM ロールを持っている必要があります。

トリガーの作成後に Cloud Build、GitHub、または GitHub Enterprise でビルドログを表示するために必要な権限の詳細については、ビルドログの表示をご覧ください。

コンソール

Google Cloud コンソールでは、[ビルド履歴] メニューに、ビルドのステータス(成功や失敗など)、ソース、結果、作成時刻、イメージなどの情報が表示されます。

[ビルド履歴] メニューを表示するには、Google Cloud コンソールで [ビルド履歴] ページを開きます。

[ビルド履歴] ページを開く

[ビルド履歴] ページが開き、最近のビルドのリストが表示されます。

ビルドをリージョンでフィルタするには、ページの上部にある [リージョン] プルダウン メニューを使用して、フィルタするリージョンを選択します。

ページ上部の [ビルドをフィルタする] テキスト ボックスを使用するか、クエリを手動で入力して、ビルドをフィルタすることもできます。

[トリガーの説明]、[アーティファクト] など、追加の列を表示するには、列セレクタ()を使用します。

特定のビルドの詳細を表示するには、[ビルド履歴] に移動し、指定したビルドをクリックします。[ビルドの詳細] ページが開き、ビルドの概要が表示されます。[ビルドの概要] には、次の情報が表示されます。

  • ビルドログ: ビルドのログ。
  • 実行の詳細: 環境変数と代入変数などのビルドの詳細。
  • ビルド アーティファクト: コンテナ イメージ、ビルドログ、バイナリなどのビルドのアーティファクト。

左側の [ステップ] テーブルでステップを選択すると、ビルドステップに固有のビルドログまたは実行の詳細を表示できます。

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  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

特定のビルドの詳細を表示するには、次のコマンドを実行します。

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:
- 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'

ステップとビルドのステータス

ビルドの完了後、Cloud Build はビルド全体の status と各ビルドステップの status を表示します。

次の表に、ビルドまたはステップが成功したとき、タイムアウトしたとき、または失敗したときのステータスを示します。

イベント ビルドのステータス ステップのステータス
ビルドの成功 SUCCESS すべてのステップが SUCCESS とマークされます。
失敗したステップを許可した場合のビルドの成功 SUCCESS
  • ビルドは SUCCESS とマークされます。
  • allowFailure または allowExitCodes で構成された失敗したステップは、FAILED とマークされます。
ビルドの失敗 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 コンソールで [ビルド履歴] ページの [ビルドをフィルタ] フィールドにクエリ文字列を指定します。たとえば、失敗したビルド(ステータス フィールドに 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="us-east1-docker.pkg.dev/my-project/my-image"

タグ "prod" を使用してすべてのビルドをクエリするには:

tags="prod"

検証済みと設定されたビルドをクエリするには、次のように指定します。

options.requested_verify_option="VERIFIED"

Cloud Source Repository ではなく、Cloud Storage 内のソースから取得されたビルドをクエリするには、次のように指定します。

source.storage_source.bucket!=""

指定した結果ダイジェストを含むビルドをクエリするには、次のように指定します。

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

特定の時刻より後に開始して、特定の時刻より前に終了したビルドをクエリするには、次のように指定します(UTC タイムゾーン)。

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

タグを使用してビルド結果をフィルタする

構成ファイルでタグを使用すると、ビルドをグループにまとめたり、ビルドをフィルタリングしたりできます。"prod""test" などのタグで文字列を指定できます。

タグには次の制限があります。

  • 各タグの文字数制限は 128 文字です
  • ビルドごとに最大 64 個のタグを定義できます
  • タグには、文字、数字、アンダースコアを文字列のどこにでも含めることができます。
  • タグには、文字列の先頭でなければどこにでもピリオドとハイフンを含めることができます。

ビルドにタグを追加するには:

  1. ビルド構成ファイルで、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. クラスタ内のタグ付きビルドを表示するには、gcloud builds list--filter オプションを使用します。ビルドをフィルタリングするには、1 つまたは複数のタグを指定します。

    • 1 つのタグでビルドをフィルタリングするには、tags フィールドに文字列としてタグを指定します。次のコマンドを実行すると、'test1' というタグの付いているすべてのビルドが表示されます。

       gcloud builds list --filter "tags='test1'"
      
    • 複数のタグでビルドをフィルタリングするには、AND、OR、NOT を使用してタグを指定します。次のコマンドを実行すると、'test1' タグまたは 'test2' タグが付き、さらに 'test3' タグが付いているすべてのビルドが表示されます。

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

    これらのコマンドを実行すると、次のような出力が表示されます。

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

次のステップ