language: node.js
node_js:
- "node"
sudo: required
services:
- docker
before_install:
- docker build -t cinerium -f Dockerfile.prod .
script:
- docker run cinerium
deploy:
provider: elasticbeanstalk
region: "ap-northeast-2"
app: "cinerium"
env: "Cinerium-env"
bucket_name: "elasticbeanstalk-ap-northeast-2-168618943806"
bucket-path: "cinerium"
on:
branch: master
access_key_id: $AWS_ACCESS_KEY
secret_access_key:
secure: $AWS_SECRET_KEY
sudo: required
- 아래의 명령어를 실행시킬 때 sudo의 권한을 요구
services
- 실행되고 있는 docker의 copy를 가져옴
before_install
- script( 테스트 로직)이 실행되기 전 설치되어야 할 파일들을 의미. 참고로 아래 script파일에 실행시킬 image id가 필요한데 해당 파일에 저장된 명령어들은 우리 대신 모두 travis가 실행시키는 것이다 따라서 우리는 구체적은 image id를 알 수없다. 그렇기 때문에 생성된 이미지에 태그를 걸어주자 (-t mia/docker-react)
script
: 테스트를 진행하기 위한 명령어를 적는 곳이다. travis는 해당 테스트를 진행한 후의 결과 코드를 얻어야 한다. 하지만 docker run mia/docker-react npm run test 까지만 실행하면 해당 명령어는 테스트를 진행하고 끝나지 않고 계속 해당 프로세스에 머물러 있을 것이다. 따라서 뒤에 -- --coverage 옵션을 붙여준다.
deploy
: elasticbeanstalk란 배포를 쉽게 도와주는 aws서비스이다.
region
: elasticbeanstalk의 URL에 나와있는 주소
app
: appliacation명
bucket naem
: elasticbeanstalk의 어플리케이션생성시 s3에 만들어지는 버킷명이다
on branch
: master브랜치 변경시마다 travis에서 새로 빌드된다
access_key_id
:travis의 설정에서 환경변수로 설정해준다.엑세스키의 권한은 elasticbeanstalkfullaccess와 s3fullaccess 권한이 있는 키로 설정한다
language: node.js
node_js:
- "node"
sudo: required
services:
- docker
install:
- npm install
script:
- npm run build
- npm run test
after_success:
- docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD"
- docker build -t zych1751/react-test .
- docker push zych1751/react-test
스크립트까지 빌드/테스트 통과되면 after_successs부분이 실행된다
아래와 같이 도커에 도커 아이디와 패스워드를 환경변수로 지정하고 빌드한후 도커허브에 이미지를 저장할 수 있다.