buildspec.yml
로 제공할 것이냐, 그냥 command로 입력할 것이냐를 선택할 수 있습니다. 저는 yml 파일을 작성할 것이므로 기본 값을 사용합니다.뭔가 프로젝트가 생성되었습니다. 하지만 git에 buildspec.yml
을 만들어두지 않았으니 Start build는 이따가 눌러보겠습니다.
해당 프로젝트에 아래와 같은 yml 파일을 생성했습니다.
version: 0.1
phases:
install:
commands:
- echo Insatlling NPM Packages and wget Enviorment File
- npm install
- npm install babel-cli cross-env --global
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- npm run build
post_build:
commands:
- echo Nothing to do in the post_build phase...
artifacts:
discard-paths: yes
install
과 pre_build
, build
, post_build
로 나눌 수 있을 것 같습니다.
install
: 빌드를 위해 필요한 패키지를 설치하는 명령어들이 좋을 것 같습니다. Node.js의 경우 npm install
같은 명령어가 있겠네요.pre_build
: 빌드 전 해야하는 명령어가 좋을 것 같습니다. 예를 들어 Mocha나 Jest를 사용한 npm run test
?build
: 실제 빌드에 사용되는 명령어가 좋을 것 같습니다. 저는 npm run build
를 사용했고, 이 명령어는는 babel server --out-dir build --presets=es2015 && webpack
로 매핑되어 있었습니다.post_build
: 빌드가 끝난 뒤 해야할 행동을 기술하면 좋을 것 같습니다. 구체적으로 사용해보지는 않았지만 주로 deploy와 관련된 명령어가 아닐까 싶습니다.해당 파일을 Git에 집어넣고 Start Build를 하면 아래와 같은 Confirm 화면이 나오고 여기서 Start Build를 한번 더 하면..!
아래와 같이 phase 별로 Build를 돌리고 Success/Failed를 확인할 수 있습니다. 저 같은 경우는 프로젝트 설정파일인 .env
가 빠져있어서 에러가 났습니다.
Build History에서 빌드 결과를 모아서 확인할 수도 있습니다.
master
Branch Push시 codeBuild를 돌릴 수 있는 지는 확인해보지 못 했습니다만 가능할 경우에는..?! 우오왕..! 앞으로 확인해봐야할 내용입니다.post_build
phase에서 AWS Elastic Beanstalk으로 deploy가 가능한지도 확인해봐야 할 내용입니다.