2017-10-13 8 views
0

AWS CodeBuild에서 소스로 빌드 할 때 루트에 buildspec.yml이라는 하나의 리포지토리가 AWS CodeCommit에 호스팅되어 있습니다.AWS CodeBuild를 사용하여 Dev/Test/Prod를 빌드하는 방법

AWS CodeBuild에서 Dev, Test 또는 Prod 빌드를 수행할지 여부를 결정할 수 있도록 소스 (AWS Pipeline arn?) 또는 이와 비슷한 것을 변수를 전달하거나 읽을 수 있습니까?

그렇지 않은 경우 AWS CodePipeline에서 누락 된 다른 방법이 있습니까?

답변

1

AWS CodeBuild는 대체 빌드 지정 파일을 지원합니다. 이 AWS 블로그에서 샘플을 찾을 수 있습니다. https://aws.amazon.com/blogs/devops/create-multiple-builds-from-the-same-source-using-different-aws-codebuild-build-specification-files/

스테이지마다 빌드 사양 파일의 이름을 다르게 지정하십시오. 예를 들어, buildspec_dev.yml, buildspec_qa.yml 등. 각각을 각각의 CodeBuild 프로젝트와 연관시킵니다. 그런 다음 CodePipeline에서 적절한 CodeBuild 프로젝트를 사용할 수 있습니다.

또한 코드 파이프 라인에서 다른 단계를 모델링 할 수도 있습니다. 예를 들어 빌드 액션에서 buildspec_dev.yml 기반 프로젝트를 사용하고 테스트 액션에서 buildspec_qa.yml 기반 프로젝트를 사용하십시오.

+0

고마워요! AWS CodeBuild의 설정 페이지를 잘못 읽었습니다. 실제로이 작업을 수행하는 방법은 매우 분명합니다 ... 하하 – Milk

0

CodeBuild에서는 빌드하는 동안 사용할 수있는 환경 변수를 정의 할 수 있습니다. 따라서 각 환경에 별도의 CodeBuild 프로젝트를 만들고 올바른 환경 변수를 설정해야합니다.

CodePipeline도 사용하는 경우 다른 환경에 대해 다른 분기가 만들어 졌다고 가정합니다. 따라서 이러한 분기에서 커밋에 대한 후크를 정의 할 수 있으며 CodePipeline은 올바른 CodeBuild 프로젝트를 호출합니다.