빌드 유형: Cloud Build v1 빌드

이 페이지에서는 Cloud Build의 빌드 유형을 설명합니다.

빌드 정의

외부 매개변수

다음 표에서는 Cloud Build 빌드에 사용할 수 있는 외부 매개변수 유형을 보여줍니다. 외부 매개변수는 지정된 값이며 빌드 구성에는 없습니다. 여기에는 cloudbuild.yaml 파일에는 없는 트리거 매개변수가 포함됩니다.

필드 유형 세부정보
buildConfigSource 객체 빌드 구성을 읽은 위치입니다.

BuildTrigger에서 이 필드는 빌드(SCM 이벤트로 트리거되는 빌드)를 트리거한 소스 저장소에 해당하거나 기타 모든 트리거 유형에 대한 gitFileSource에 해당합니다.

buildConfigSource 또는 buildConfig(인라인 빌드 구성인 경우)가 설정됩니다.
buildConfigSource.ref 문자열 정규화된 git 참조(refs/로 시작) 또는 커밋 SHA(소문자 16진수)로, 구성을 읽은 buildConfigSource.repository 내의 Git 참조입니다. 커밋 SHA는 트리거에 지정된 경우에만 사용됩니다.
buildConfigSource.repository 문자열 빌드 구성 파일이 포함된 git 저장소의 HTTPS URI입니다(https:// 프로토콜 사용). SPDX 형식과의 호환성을 위해 git+가 프리픽스로 추가됩니다. 형식 요구사항에 대한 자세한 내용은 ResourceURI를 참조하세요.
buildConfigSource.path 문자열 커밋 내의 빌드 구성 파일 경로입니다. 예를 들면 다음과 같습니다. cloudbuild.yaml

pathAutodetect와 상호 배타적입니다. 이러한 필드 중 하나는 정확하게 기본값이 아닌 값으로 설정되어야 합니다.
buildConfigSource.pathAutoDetect 부울 true인 경우, BuildTrigger의 자동 감지 옵션에 따라 path가 자동 감지된 것입니다. false는 설정되지 않은 것과 동일하게 간주됩니다. 자동 감지가 사용 설정되지 않은 경우 Cloud Build가 대신 path를 사용합니다.

path와 상호 배타적입니다. 이러한 필드 중 하나는 기본값이 아닌 값으로 정확히 설정되어야 합니다.
sourceToBuild 객체 체크아웃되고 빌드된 소스 코드입니다. 일반적으로 buildConfigSource와 동일합니다. BuildTrigger에 gitFileSource가 설정된 경우에만 다릅니다.

repositoryrefbuildConfigSource와 동일하고 dir이 비어 있는 경우 이 필드는 존재하지 않습니다.

BuildTrigger에서는 트리거 유형에 따라 sourceToBuild 또는 빌드를 트리거한 커밋에 해당합니다.
sourceToBuild.ref 문자열 정규화된 Git 참조(refs/로 시작) 또는 커밋 SHA(소문자 16진수)로, 확인된 sourceToBuild.repository 내의 Git 참조입니다. 커밋 SHA는 트리거에 지정된 경우에만 사용됩니다.
sourceToBuild.repository 문자열 체크아웃된 git 저장소의 HTTPS URI입니다(https:// 프로토콜 사용). 여기에는 git+가 프리픽스로 추가됩니다.
sourceToBuild.dir 문자열 빌드를 실행할 커밋 내의 디렉터리입니다(후행 슬래시 없음). 설정하지 않은 채로 비워둘 수 있습니다.
buildConfig 문자열 수동으로 제출된 빌드와 같이 인라인 빌드 구성이 제공되면 다음 정보가 기록됩니다.

- 단계
- 빌드 옵션(예: 환경 변수, 볼륨, 작업자 풀 세부정보, machineType, 로그 세부정보)
- 대체 항목

빌드 구성을 저장소에서 읽어 오면 빌드는 buildConfigSource 섹션에 기록되고 인라인 빌드 구성은 생략됩니다.

이 정보는 base64로 인코딩되고 직렬화된 JSON 문자열로 저장됩니다.
substitutions map<string,string></string,string> 빌드 리소스에서 수행할 대체 항목이 포함된 (문자열 -> 문자열) 맵입니다.

빌드 구성에 기록되지 않는 '런타임' 또는 '독립형' 대체 항목만 포함됩니다. 즉, 트리거 또는 gcloud CLI 플래그로 전달됩니다.

이 레코드에는 시스템에서 제공하는 기본 대체 항목이 포함되지 않습니다. 이러한 대체 항목은 internalParameters로 간주되기 때문입니다.

대체 항목은 빌드 구성에서 참조 또는 사용 여부와 관계없이 이 필드에 표시됩니다.

내부 매개변수

다음 표에는 덮어쓰지 않는 한 Cloud Build가 빌드에 설정하는 내부 매개변수를 표시합니다. 자세한 내용은 기본 대체 항목을 참조하세요.

필드 세부정보
triggerUri 이 빌드를 호출한 트리거의 리소스 URI입니다(이 경우 전체 리소스 이름).

빌드가 트리거되지 않았으면 생략됩니다.
systemSubstitutions Cloud Build 빌드에 자동으로 제공되는 기본 대체 값의 하위 집합이 있습니다(예: PROJECT_ID, BUILD_ID).

사용자가 Cloud Build 기본 대체 항목 중 하나를 덮어쓰면 여기에 대체 항목이 표시되지 않습니다. 대신 사용자의 값이 externalParameters.substitutions에 나열됩니다.

확인된 종속 항목

빌드에 소스 저장소나 빌드 구성 저장소가 있으면 저장소는 BuildDefinitionresolvedDependencies 섹션에 설명됩니다.

ResolvedDependenciesResourceDescriptor 사양을 준수합니다.


종속 항목 유형

세부정보

빌드 구성 저장소

빌드 구성(예: cloudbuild.yaml)을 가져온 저장소입니다(빌드가 트리거된 경우).


저장소에서 읽지 않고 인라인으로 제공되는 빌드 구성의 경우 이 저장소가 비어 있을 수 있습니다. 이 경우 생략됩니다.

소스 저장소

빌드할 소스 코드를 가져온 저장소입니다. buildConfigSource와 동일하거나 다를 수 있습니다. buildConfigSource와 동일한 경우 sourceToBuild가 생략됩니다(예: SCM에서 트리거된 빌드에서).

빌드가 –no-source를 통해 실행되면 sourceToBuild가 비어 있을 수 있으며 생략됩니다.

예를 들어 다음 resolvedDependencies 정보에는 buildConfigRepo와 sourceRepo(서로 동일) 및 빌드 단계 이미지가 모두 포함됩니다.

"resolvedDependencies": [
{
    "uri": "git+https://github.com/octocat/hello-world.git",
    "digest": {"sha1": "7fd1a60b01f91b314f59955a4e4d4e80d8edf11d"}
}, {
    "uri": "gcr.io/cloud-builders/git",
    "digest": {
        "sha256": "28ff94e63e4058afc3f15b4c11c08cf3b54fa91faa646a4bba7158df"}
    }
]

RunDetails

필드 세부정보
빌더 작업을 실행하고 이 출처를 채운 빌드 플랫폼을 식별하는 id 하위 필드가 포함되어 있습니다. SLSA 수준도 포함되어 있습니다. 예상 id 값은 https://cloudbuild.googleapis.com/GoogleHostedWorker입니다
metadata 이러한 빌드의 특정 실행에 대한 추가 메타데이터입니다. invocationId에 빌드의 URL이 표시됩니다(예: https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/builds/BUILD_ID).
startedOnfinishedOn 필드에는 빌드가 시작되고 완료된 타임스탬프가 포함되어 있습니다.
byproducts 아직 사용되지 않습니다. 빌드의 출력으로 간주되지 않는 추가 아티팩트가 포함되도록 설계되었지만 문제 해결이나 이슈 대응에 유용할 수 있습니다.
systemSubstitutions Cloud Build 빌드에 자동으로 제공되는 기본 대체 값의 하위 집합이 있습니다(예: PROJECT_ID, BUILD_ID).

사용자가 Cloud Build 기본 대체 항목 중 하나를 덮어쓰면 여기에 대체 항목이 표시되지 않습니다. 대신 사용자의 값이 externalParameters.substitutions에 나열됩니다.