본문 바로가기
Clone Coding/스프링 부트와 AWS

[Travis CI] 빌드 자동화

by 연로그 2021. 3. 12.
반응형

드디어 AWS EC2에 프로젝트 배포, RDS와의 연동, OAuth 2를 이용한 로그인 기능까지 마쳤다.

이제 Travis CI를 이용해 프로젝트 배포를 자동화시킬 예정이다.

 

Jenkins를 이용하는 것도 괜찮지만, 설치형 도구라 EC2 인스턴스를 하나 더 만들어야 한다.

( Jenkins 이용하기: yeonyeon.tistory.com/56?category=931428 )

 

본 포스팅에서는 일단 빌드까지만 자동화하도록 만들었다.

  • 빌드: 실행 가능한 sw 산출물을 만드는 일련의 과정
  • 배포: 빌드 결과인 산출물을 사용자가 접근 가능한 환경에 배치시키는 일

 


Travis CI를 이용한 자동 빌드

 

1. travis-ci.org/ 깃허브 계정을 통해 회원가입

 

Travis CI - Test and Deploy Your Code with Confidence

 

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로 혼자 구현하는 웹 서비스 / 이동욱 ] 책을 따라한 것을 정리하기 위한 게시글입니다. 요약, 생략한 부분이 많으니 보다 자세한 설명은 책 구매를 권장합니다.

반응형