AWS/Service

AWS CodeBuild

jih0ssang 2023. 12. 16. 17:57

AWS CodeBuild

지금은 이렇게 바뀜

  • 코드에 대한 빌드와 테스트 

파이프라인 단계

1. 사용자가 소스 푸시(CodeCommit)
2. 트리거(소스 푸시) 걸려서 CodePipeline이 CodeBuild에게 빌드 시작 요청 (Codebuild)
3. CodeBuild가 빌드된 파일(buildspec.yml) 즉, 아티팩트를 S3 버킷(혹은 아티팩트 저장소)에 업로드 
4. CodeBuild instance는 CodeCommit에 접근해서 소스코드 가져와서 빌드와 유닛테스트 진행.
결과물을 S3에 업로드

 

구성 요소 및 동작 순서

단계 내용
Source Control - CodeCommit, Github, S3 등의 소스 관리 툴에서 소스코드 불러오기
Build Project - Source Control에서 코드를 가져와 빌드 테스트 실행
- Source Control, 빌드 환경, 빌드 파일(아티팩트) 저장 위치 등을 환경 정보를 선택함
Build Environment - CodeBuild가 Build Project를 사용하여 Build Environment 생성
- Build Project에 정의된대로 buildspec.yml(빌드할때 사용하는 빌드명령 및 관련 설정 파일) 실행
S3 Bucket - Build Environment에서 빌드된 파일(appspec.yml)을 S3에 업로드
Notifications  
Destroy Build Environment - 빌드 작업이 완료된 후 Build Environment를 삭제

 

 

 

buildspec.yml

version: 0.1

# 빌드 단계에서 사용할 변수 정의
environment_variables:
     plaintext:
     	  JAVA_HOME: "/usr/lib/jvm/java -8 -openjdk -amd64"
          
# 빌드 단계에서 사용할 수 있는 작업
phases:
  install:
  	  command:
      -  apt-get update -y
      -  apt-get install -y maven
  pre_build:
    commands:
      - echo Nothing to do in the pre_build phase...
  build:
    commands:
      - echo Build started on `date`
      - mvn install
  post_build:
    commands:
      - echo Build completed on `date`
      
# S3에 아티팩트(빌드된 파일) 생성 및 저장
artifacts:
  files:
    - target/messageUtil-1.0.jar
  • 빌드 사양(Build spec)은 AWS CodeBuild가 빌드를 실행하는 데 사용하는 YAML 형식의 빌드 명령 및 관련 설정 모음 파일이다.
  • 소스코드의 일부로 빌드 사양을 포함할 수 있으며, 빌드 프로젝트를 생성할 때 빌드 사양을 정의할 수 있다.
  • 빌드 프로젝트에 대해 하나의 빌드 사양만 지정할 수 있다.

 

CodeBuild가 필요한 권한

IAM Role

codebuild-sample-s3-service-role

 

Policy

AmazonS3FullAccess

 

buildspec.yml 파일의 'post-build' 항목에서 빌드된 소스를 동기화할 S3 버킷을 

본인이 생성한 S3 버킷 정보로 변경한다.

 

 

 

 

 

'AWS > Service' 카테고리의 다른 글

AWS CodePipeline  (0) 2023.12.17
AWS CodeDeploy  (0) 2023.12.16
Route53 Resolver  (0) 2023.12.02
S3 업로드 방식 및 웹 사이트용 주의사항  (0) 2023.12.02
Amazon S3  (1) 2023.12.02