현재 유료 계정으로 바뀌었으므로 한달만 사용 가능하다. 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로 배포 자동화 구축하기
travis 계정에 들어가서 등록해준다.
현재 SpringBOot Applitcation이 ssafy, whdgk13579! 으로 연결되었으므로, 다음과 같이 before script 에 적어줘야 한다.
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