📑

googleapiclientのdiscovery使ってcloudbuildのビルドステータスを確認する

2021/09/22に公開

Pythonにはgoogleapiclientというパッケージがあるのですが、これを使うことにより指定したビルドの状態を取得することができます。

コード

結果(例)

{'buildTriggerId': 'your-trigger-id',
 'createTime': '...',
 'finishTime': '...',
 'id': 'your-id',
 'logUrl': 'https://console.cloud.google.com/cloud-build/builds/...',
 'logsBucket': 'gs://...',
 'name': 'projects/.../locations/global/builds/...',
 'options': {'dynamicSubstitutions': True,
             'logging': 'LEGACY',
             'machineType': 'E2_HIGHCPU_32',
             'substitutionOption': 'ALLOW_LOOSE'},
 'projectId': 'your-project',
 'queueTtl': '3600s',
 'results': {'buildStepImages': ['', ''], 'buildStepOutputs': ['', '']},
 'source': {},
 'sourceProvenance': {},
 'startTime': '',
 'status': '',
 'steps': [],
 'substitutions': {'BRANCH_NAME': 'main',
                   'COMMIT_SHA': '',
                   'REF_NAME': 'main',
                   'REPO_NAME': '',
                   'REVISION_ID': '',
                   'SHORT_SHA': '',
                   'TRIGGER_BUILD_CONFIG_PATH': '',
                   'TRIGGER_NAME': '',
                   '_IMAGE_TAG': '',
                   '_PROJECT_ID': ''},
 'tags': ['...'],
 'timeout': '50000s',
 'timing': {
   'BUILD': {
       'endTime': '',
        'startTime': ''
   },
   'FETCHSOURCE': {
     'endTime': '',
     'startTime': ''
   }
 }
}

この実装(cloudbuildのステータスチェック)は、gcloudコマンドを使うなりコンソール画面から確認もできるので単体ではあまり意味と思いますが、Pythonの実装としてcloudbuildの実行から状態チェックまでを一つのタスクとしてワークフローに組み込みたいときには使えます。

Discussion