드디어 AWS EC2에 프로젝트 배포, RDS와의 연동, OAuth 2를 이용한 로그인 기능까지 마쳤다.
이제 Travis CI를 이용해 프로젝트 배포를 자동화시킬 예정이다.
Jenkins를 이용하는 것도 괜찮지만, 설치형 도구라 EC2 인스턴스를 하나 더 만들어야 한다.
( Jenkins 이용하기: yeonyeon.tistory.com/56?category=931428 )
본 포스팅에서는 일단 빌드까지만 자동화하도록 만들었다.
- 빌드: 실행 가능한 sw 산출물을 만드는 일련의 과정
- 배포: 빌드 결과인 산출물을 사용자가 접근 가능한 환경에 배치시키는 일
Travis CI를 이용한 자동 빌드
1. travis-ci.org/ 깃허브 계정을 통해 회원가입
2. Settings - Legacy Services Integration에서 프로젝트 활성화
3. 프로젝트에 .travis.yml 생성
build.gradle과 같은 위치에 생성한 뒤, Git에 Push한다.
코드를 그대로 복붙해서 쓰지 말고 수정해서 써주세요ㅠㅠ 저한테 메일이 옵니다 제 메일 주소 삭제했습니다
language: java
jdk:
- openjdk8
branches:
only:
- master
# Travis CI 서버의 Home
cache:
directories:
- '$HOME/.m2/repository'
- '$HOME/.gradle'
script: "./gradlew clean build"
# CI 실행 완료시 메일로 알람
notifications:
email:
recipients:
- 이메일주소
코드 설명 ▼
branches
- Travis CI를 어느 브랜치가 푸시될 때 수행할지 지정
- only: - master // master 브랜치에 push될 때만 수행
cache
- Gradle을 통해 의존성 받게 되면 이를 해당 디렉토리에 캐시
- 같은 의존성은 다음 배포 때부터 다시 받지 않도록 설정
script
- master 브랜치에 푸시되었을 때 수행하는 명령어
- "./gradlew clean build": 프로젝트 내부에 둔 gradlew을 통해 clean & build 수행
notifications
- Travis CI 실행 완료 시 자동으로 알림 가도록 설정
Push가 완료되면 Travis CI에서 프로젝트의 Branches를 보면 빌드 결과가 나온다.
등록한 이메일에서도 빌드 결과를 확인할 수 있다.
3-1. The command "eval ./gradlew assemble " failed. 에러
빌드 전문을 보니 ./gradlew: Permission denied 라는 에러가 떴다.
./gradlew 명령어 실행을 해야하는데 권한이 없어서 그렇다.
.travis.yml에 다음 코드를 통해 install 전에 권한을 추가해주었다.
before_install:
- chmod +x gradlew
해당 게시글은 [ 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 / 이동욱 ] 책을 따라한 것을 정리하기 위한 게시글입니다. 요약, 생략한 부분이 많으니 보다 자세한 설명은 책 구매를 권장합니다.
'Clone Coding > 스프링 부트와 AWS' 카테고리의 다른 글
[CodeDeploy] 배포 자동화 (2) | 2021.03.16 |
---|---|
[AWS] Travis CI, AWS S3, CodeDeploy 연동하기 (0) | 2021.03.15 |
[OAuth 2] 구글, 네이버 연동 설정 바꾸기 (4) | 2021.03.11 |
[Spring] 스프링 부트로 RDS 접근하기 (5) | 2021.02.16 |
[AWS EC2] 배포 스크립트 생성 (0) | 2021.02.15 |