Travis 가입

현재 유료 계정으로 바뀌었으므로 한달만 사용 가능하다. github 연결해서 쓰면 된다. .travis.ylm 파일을 작성한다.

language: java
jdk:
  - openjdk11

branches:
  only:
    - master

# Travis CI 서버의 Home
cache:
  directories:
    - '$HOME/.m2/repository'
    - '$HOME/.gradle'
before_install:
  - chmod +x gradlew

script: "./gradlew clean build"

services:
  - mysql

before_script:
  - mysql -e 'CREATE DATABASE world;'
  - mysql -u root -e "CREATE USER 'ssafy'@'localhost' IDENTIFIED BY 'whdgk13579!';"
  - mysql -u root -e "GRANT ALL PRIVILEGES ON world.* TO 'ssafy'@'localhost';"
# CI 실행 완료시 메일로 알람
notifications:
  email:
    recipients:
      - [email protected]  #빌드 결과를 받아 볼 이메일 주소
before_deploy:
  - zip -r newsum * #현재 위치의 모든 파일을 newsum 이름으로 압축
  - mkdir -p deploy #deploy 디렉토리를 Travis CI가 실행중인 위치에 생성
  - mv newsum.zip deploy/newsum.zip #deploy 폴더로 이동
deploy:
  - provider: s3
    access_key_id: $AWS_ACCESS_KEY # Travis repo settings에 설정된 값
    secret_access_key: $AWS_SECRET_KEY # Travis repo settings에 설정된 값
    bucket: junyoung-jongha-bucket # S3 버킷
    region: ap-northeast-2
    skip_cleanup: true
    acl: public_read
    wait-until-deployed: true
    on:
      repo: worldii/CICD #Github 주소
      branch: master
    local_dir: deploy # before_deploy에서 생성한 디렉토리

  - provider: codedeploy
    access_key_id: $AWS_ACCESS_KEY # Travis repo settings에 설정된 값
    secret_access_key: $AWS_SECRET_KEY # Travis repo settings에 설정된 값
    bucket: junyoung-jongha-bucket # S3 버킷
    key: newsum.zip # 빌드 파일을 압축해서 전달
    bundle_type: zip
    application: newsum_codedeploy # 웹 콘솔에서 등록한 CodeDeploy 어플리케이션
    deployment_group: jongha # 웹 콘솔에서 등록한 CodeDeploy 배포 그룹
    region: ap-northeast-2
    wait-until-deployed: true
    on:
     repo: worldii/CICD #Github 주소
     branch: master

6) 스프링부트로 웹 서비스 출시하기 - 6. TravisCI & AWS CodeDeploy로 배포 자동화 구축하기

[TravisCI, SpringBoot] 배포 자동화

AWS_ACCESS_KEY, AWS_SECRET_KEY 설정

travis 계정에 들어가서 등록해준다.

Travie TrobleShooting

현재 SpringBOot Applitcation이 ssafy, whdgk13579! 으로 연결되었으므로, 다음과 같이 before script 에 적어줘야 한다.


CodeDeploy 환경 설정

ec2 설치 시,

#!/bin/bash
# jdk 11 설치
sudo rpm --import <https://yum.corretto.aws/corretto.key> 
sudo curl -L -o /etc/yum.repos.d/corretto.repo <https://yum.corretto.aws/corretto.repo>
sudo yum install -y java-11-amazon-corretto-devel

# code deploy agent 설치
yum -y update
yum install -y ruby
cd /home/ec2-user
curl -O <https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install>
chmod +x ./install
sudo ./install auto

CICD - Codedeploy란? (Codedeploy를 이용한 자동배포(CD) 환경 구축하기)

1) AWS로 배포하기 시리즈 - 1. Code Deploy 사용하기