빌드 결과 보기

이 페이지에서는 Google Cloud 콘솔, gcloud 명령줄 도구, Cloud Build API를 사용하여 Cloud Build 빌드 정보를 보는 방법을 설명합니다.

시작하기 전에

이 가이드의 명령줄 예시를 사용하려면 gcloud 명령줄 도구를 설치해야 합니다.

빌드 결과 보기

빌드 로그를 보려면 프로젝트 주 구성원에게 Cloud Build IAM 권한 외에도 다음 IAM 역할 중 하나가 필요합니다.

Cloud Build나 GitHub 또는 GitHub Enterprise에서 트리거를 만든 후 빌드 로그를 보는 데 필요한 권한에 대한 자세한 내용은 빌드 로그 보기를 참조하세요.

Console

Google Cloud Console에서 빌드 기록 메뉴는 빌드 상태(성공 또는 실패), 소스, 결과, 생성 시간, 이미지 등에 대한 정보를 보여줄 수 있습니다.

빌드 기록 메뉴를 보려면 Google Cloud Console에서 빌드 기록 페이지를 엽니다.

빌드 기록 페이지 열기

최근의 빌드 목록을 보여주는 빌드 기록 페이지가 표시됩니다.

리전별로 빌드를 필터링하려면 페이지 상단의 리전 드롭다운 메뉴를 사용하여 필터링할 리전을 선택합니다.

또한 페이지 상단의 빌드 필터링 텍스트 상자를 사용하거나 수동으로 쿼리를 입력하여 빌드를 필터링할 수도 있습니다.

트리거 설명, 아티팩트 등의 추가 열을 보려면 열 선택기 을 사용합니다.

특정 빌드에 대한 세부정보를 보려면 빌드 기록으로 이동하여 특정 빌드를 클릭합니다. 빌드 세부정보 페이지에 빌드의 빌드 요약이 표시됩니다. 빌드 요약에는 다음 내용이 포함됩니다.

  • 빌드 로그는 빌드의 로그입니다.
  • 실행 세부정보는 환경 변수와 대체를 포함한 빌드의 세부정보입니다.
  • 빌드 아티팩트는 컨테이너 이미지, 빌드 로그, 바이너리 등 빌드의 아티팩트입니다.

왼쪽의 단계 표에서 단계를 선택하면 빌드 단계별로 빌드 로그나 실행 세부정보를 볼 수 있습니다.

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 Storage(Cloud Source Repository와 반대)의 소스에서 비롯된 빌드를 쿼리하려면 다음을 사용하세요.

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 옵션을 사용합니다. 단일 태그 또는 여러 태그를 지정하여 빌드를 필터링할 수 있습니다.

    • 단일 태그로 빌드를 필터링하려면 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
    

다음 단계