travis.yml작성

코드깎는 노인·2020년 5월 19일
0

example1

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 권한이 있는 키로 설정한다

example 2

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부분이 실행된다
아래와 같이 도커에 도커 아이디와 패스워드를 환경변수로 지정하고 빌드한후 도커허브에 이미지를 저장할 수 있다.

profile
내가 볼려고 만든 블로그

0개의 댓글