여러 입력 및 출력으로 빌드 프로젝트 생성 - AWS CodeBuild

여러 입력 및 출력으로 빌드 프로젝트 생성

다음 절차에 따라 여러 입력 및 출력이 있는 빌드 프로젝트를 생성합니다.

여러 입력 및 출력으로 빌드 프로젝트를 생성하려면
  1. 소스를 1개 이상의 S3 버킷, CodeCommit, GitHub, GitHub Enterprise Server 또는 Bitbucket 리포지토리에 업로드합니다.

  2. 기본 소스로 사용할 소스를 선택합니다. 기본 소스란 CodeBuild가 buildspec 파일을 찾아서 실행하는 소스를 말합니다.

  3. 빌드 프로젝트를 생성합니다. 자세한 내용은 에서 빌드 프로젝트 생성AWS CodeBuild 섹션을 참조하세요.

  4. 빌드 프로젝트를 생성하고, 빌드를 실행하고, 빌드에 대한 정보를 가져옵니다.

  5. AWS CLI를 사용하여 빌드 프로젝트를 생성하는 경우, create-project 명령에 JSON 형식으로 입력하면 다음과 같은 모습이 될 수 있습니다.

    { "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에서는 보조 아티팩트의 artifactIdentifierCreateProjectUpdateProject에서 반드시 필요한 속성입니다. 보조 아티팩트를 참조할 때 사용해야 합니다.

앞서 얘기한 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를 사용해 sourceVersionStartBuild 속성에서 재정의할 수 있습니다. 보조 소스 버전을 1개 이상 재정의할 때는 secondarySourceVersionOverride 속성을 사용하십시오.

start-build에서 AWS CLI 명령에 JSON 형식으로 입력하면 다음과 같은 모습이 될 수 있습니다.

{ "projectName": "sample-project", "secondarySourcesVersionOverride": [ { "sourceIdentifier": "source1", "sourceVersion": "codecommit-branch" }, { "sourceIdentifier": "source2", "sourceVersion": "github-branch" }, ] }