기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
다중 입력 소스 및 출력 아티팩트 샘플
둘 이상의 입력 소스와 둘 이상의 출력 아티팩트 세트를 사용하여 AWS CodeBuild 빌드 프로젝트를 생성할 수 있습니다. 이번 샘플은 아래와 같은 빌드 프로젝트를 설정하는 방법에 대한 내용입니다.
-
유형에 따라 여러 가지 소스와 리포지토리를 사용합니다.
-
단일 빌드에서 다수의 S3 버킷에 빌드 아티팩트를 게시합니다.
이번 샘플에서는 빌드 프로젝트를 생성하여 빌드를 실행하는 데 사용합니다. 또한 빌드 프로젝트의 buildspec 파일을 사용해 소스 1개 이상을 포함시키고, 아티팩트 세트 1개 이상을 생성하는 방법에 대해서 설명합니다.
-
소스를 하나 이상의 S3 버킷,, CodeCommit GitHub, GitHub 엔터프라이즈 서버 또는 Bitbucket 리포지토리에 업로드합니다.
-
기본 소스로 사용할 소스를 선택합니다. 이 소스는 buildspec 파일을 CodeBuild 찾아 실행하는 소스입니다.
-
빌드 프로젝트를 생성합니다. 자세한 정보는 AWS CodeBuild에서 빌드 프로젝트 생성을 참조하세요.
-
빌드 프로젝트를 만들고, 빌드를 실행하고, 빌드에 대한 정보를 얻으세요.
-
를 사용하여 빌드 프로젝트를 만드는 경우 JSON 형식의
create-project
명령 입력은 다음과 비슷할 수 있습니다. AWS CLI{ "name": "sample-project", "source": { "type": "S3", "location": "
<bucket/sample.zip>
" }, "secondarySources": [ { "type": "CODECOMMIT", "location": "https://git-codecommit.us-west-2.amazonaws.com/v1/repos/repo", "sourceIdentifier": "source1" }, { "type": "GITHUB", "location": "https://github.com/awslabs/aws-codebuild-jenkins-plugin", "sourceIdentifier": "source2" } ], "secondaryArtifacts": [ss { "type": "S3", "location": "<output-bucket>
", "artifactIdentifier": "artifact1" }, { "type": "S3", "location": "<other-output-bucket>
", "artifactIdentifier": "artifact2" } ], "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }
기본 소스는 source
속성에서 정의됩니다. 그 밖에 다른 소스는 보조 소스라고 불리며, secondarySources
에 표시됩니다. 보조 소스는 모두 자체 디렉터리에 설치됩니다. 이 디렉터리는 내장 환경 변수인 CODEBUILD_SRC_DIR_
에 저장됩니다. 자세한 정보는 빌드 환경의 환경 변수을 참조하세요.sourceIdentifer
secondaryArtifacts
속성에는 아티팩트 정의 목록이 포함됩니다. 이러한 아티팩트는 secondary-artifacts
블록 내에 중첩되는 buildspec 파일의 artifacts
블록을 사용합니다.
buildspec 파일의 보조 아티팩트는 아티팩트와 동일한 구조를 가지고 있지만 아티팩트 식별자로 구분됩니다.
참고
CodeBuild API에서 보조 아티팩트의 artifactIdentifier
on은 및 의 필수 속성입니다. CreateProject
UpdateProject
보조 아티팩트를 참조할 때 사용해야 합니다.
앞서 얘기한 JSON 형식의 입력을 사용하면 프로젝트의 buildspec 파일은 다음과 같은 모습이 될 수 있습니다.
version: 0.2 phases: install: runtime-versions: java: openjdk11 build: commands: - cd $CODEBUILD_SRC_DIR_source1 - touch file1 - cd $CODEBUILD_SRC_DIR_source2 - touch file2 artifacts: files: - '**.*' secondary-artifacts: artifact1: base-directory: $CODEBUILD_SRC_DIR_source1 files: - file1 artifact2: base-directory: $CODEBUILD_SRC_DIR_source2 files: - file2
기본 속성의 버전은 API를 사용해 sourceVersion
의 StartBuild
속성에서 재정의할 수 있습니다. 보조 소스 버전을 1개 이상 재정의할 때는 secondarySourceVersionOverride
속성을 사용하십시오.
JSON 형식의 start-build
명령 입력은 다음과 같을 수 있습니다. AWS CLI
{ "projectName": "sample-project", "secondarySourcesVersionOverride": [ { "sourceIdentifier": "source1", "sourceVersion": "codecommit-branch" }, { "sourceIdentifier": "source2", "sourceVersion": "github-branch" }, ] }
소스 샘플이 없는 프로젝트
소스를 구성할 때 NO_SOURCE
소스 유형을 선택하여 CodeBuild 프로젝트를 구성할 수 있습니다. 소스 유형이 NO_SOURCE
일 경우, 프로젝트에 소스가 없으므로 buildspec 파일을 지정할 수 없습니다. 대신에 create-project
CLI 명령에 대한 JSON 형식 입력의 buildspec
속성 내 YAML 형식 buildspec 문자열 지정이 필요합니다. 값이 다음과 같을 것입니다.
{ "name": "project-name", "source": { "type": "NO_SOURCE", "buildspec": "version: 0.2\n\nphases:\n build:\n commands:\n - command" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL", }, "serviceRole": "arn:aws:iam::account-ID:role/role-name", "encryptionKey": "arn:aws:kms:region-ID:account-ID:key/key-ID" }
자세한 정보는 빌드 프로젝트 생성(AWS CLI)을 참조하세요.
여러 소스 입력을 사용하여 여러 출력 아티팩트를 만드는 파이프라인을 만드는 방법을 알아보려면 CodeBuild 을 참조하십시오AWS CodePipeline 여러 입력 소스 CodeBuild 및 출력 아티팩트와의 통합 샘플 .