빌드 결과 보기

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

시작하기 전에

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

빌드 결과 보기

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

빌드 로그를 보기 위한 필수 권한에 대한 자세한 내용은 빌드 로그 보기를 참조하세요.

Console

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

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

빌드 기록 페이지 열기

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

리전별로 빌드를 필터링하려면 페이지 상단의 리전 드롭다운 메뉴를 사용하여 필터링할 리전을 선택합니다. Cloud Functions 배포와 관련된 리전화된 빌드만 필터링할 수 있습니다.

빌드를 필터링하려면 페이지 상단의 빌드 필터링 텍스트 상자를 사용하거나 수동으로 쿼리를 입력합니다.

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

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

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

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

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 Console의 빌드 기록 페이지 빌드 필터링 필드에 쿼리 문자열을 제공합니다. 예를 들어 실패한 빌드(상태 필드 값이 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/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', 'gcr.io/$PROJECT_ID/cb-demo-img', '.' ]
    images:
    - 'gcr.io/$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://...                                                                           gcr.io/...                             SUCCESS
    

빌드 트리거에 대한 빌드 결과 보기

Cloud Build 대시보드는 각 빌드 트리거에 대한 최신 빌드의 대략적인 개요를 제공합니다.

대시보드는 카드별로 구성되며 각 카드는 저장소의 빌드 트리거와 연결됩니다. 단일 저장소에 트리거가 여러 개 있으면 카드도 여러 개 있습니다. 이들 카드는 저장소 이름과 트리거 이름 순으로 알파벳 순으로 정렬됩니다. 카드 오른쪽에 마우스를 올리고 아래 예시에 있는 고정 아이콘을 클릭하여 페이지 상단에 카드를 고정할 수도 있습니다.

대시보드에 표시된 예시 카드 스크린샷

카드는 성공 또는 실패와 같이 빌드의 최신 결과에 따라 제목이 지정됩니다. 저장소의 이름과 트리거 이름은 최근 결과를 따릅니다. 제목 아래 카드에는 최근 빌드와 관련된 결과가 요약되어 있습니다.

대시보드 보기

빌드 트리거가 설정되어 있으면 Cloud Build 대시보드가 채워집니다. 빌드 트리거를 설정하는 방법에 대한 자세한 내용은 빌드 트리거 생성 및 관리를 참조하세요.

Cloud Build 대시보드를 보려면 다음 안내를 따르세요.

  1. Cloud Build 대시보드 페이지로 이동합니다.

    Cloud Build 대시보드 페이지 열기

  2. 드롭다운 메뉴에서 프로젝트를 선택합니다.

빌드 트리거의 최근 빌드가 나열된 Cloud Build 대시보드가 표시됩니다.

Cloud Build 대시보드에는 다음 정보가 표시됩니다.

  • 최신 빌드: 최근 빌드의 날짜와 시간입니다.

  • 기간: 최근 빌드의 기간으로, HH:MM:SS 형식입니다.

  • 소스: 연결된 소스 저장소로 연결되는 링크입니다. 소스 저장소는 Cloud Source Repository, GitHub 저장소 또는 Bitbucket 저장소일 수 있습니다.

  • 커밋: 빌드에 사용된 커밋으로 연결되는 링크입니다.

  • 실패한 단계: 가장 최근의 빌드가 실패한 경우 실패한 빌드 단계입니다.

가장 최근의 빌드가 실패한 경우 실패한 단계는 빌드 로그에서 실패의 원인이 되었던 단계로 연결됩니다.

  • 빌드 기록: 최근 빌드 20개의 빌드 기간을 나타내는 막대 그래프입니다. 막대 그래프의 각 막대 위에 마우스를 올려놓으면 개별 빌드에 대한 정보를 볼 수 있습니다.

  • 평균 기간: 아직 실행중인 빌드를 제외한 최근 빌드 20개의 평균 런타임입니다.

  • 통과 - 실패 %: 가장 최근 빌드 20개의 평균 통과/실패 비율입니다.

카드 필터링

대시보드에서 카드를 필터링하려면 Cloud Build 대시보드 페이지 상단의 트리거 필터 옵션을 클릭하세요.

트리거 필터링 프롬프트 스크린샷

다음 기준으로 카드를 필터링할 수 있습니다.

  • 트리거 소스: 소스 저장소의 이름입니다.
  • 트리거 이름: 트리거의 이름입니다.
  • 트리거 설명: 트리거에 대한 설명입니다.

다음 단계