Infra/DevOps

[배포 자동화 구축 3] Jenkins와 Github 연동 및 gradle 빌드 세팅

개몽가 2021. 1. 3. 15:44

출처 : 구글

jenkins와 github를 연동하는 방법과 gradle 빌드 환경 구성을 알아볼 것이다.

먼저 서버에 git, java가 설치되어있어야함

 

AWS EC2 인스턴스 위에 설치한 jenkins에 Github를 연동하는 과정에서 git repository url 등록 후 아래와 같은 오류를 맞딱트려서 삽질을 꽤나 했음.

 

Failed to connect to repository : Error performing git command: git ls-remote -h (생략)

 

해당 오류는 aws ec2에 git을 설치하지 않아서 나타난 오류였음.... 아래와 같이 설치 먼저 진행하도록 하자.

 

git 설치 

 

AWS EC2 인스턴스 위에 git 설치

$ sudo yum install git -y

 

git 버전 확인

$ git --version

 


jenkins와 github 연동

연동방법은 아래 블로그 글을 참고했다

goddaehee.tistory.com/258

 

[Jenkins] [github] Jenkins와 github 연동하기

[Jenkins] [github] Jenkins와 github 연동하기 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ Jenkins와 github 연결하기 ] 입니다. : ) 이번 포스팅은 Jenkins와 Github을 연동하는 것이 기본 목적이긴 하지..

goddaehee.tistory.com

 

위의 블로그 내용을 참고하여 생성한 프로젝트를 깃허브와 연동하고 나면 좌측에 GitHub로 이동하는 아이콘이 생김.

제대로 연동이 되었는지 Build Now를 클릭해서 빌드해보면 알 수 있다.

Susscess 라고 뜨면 연동완료

 


gradle 프로젝트를 빌드하기 위한 설정

gradle 로 빌드하기 위해선 jenkins에 plugin을 설치해야한다.

'Jenkins 관리 > 플러그인 관리' 에서 gradle plugin을 설치한다.

 

gradle plugin 설치가 완료되면 생성한 프로젝트에 가서 '구성'을 클릭해 gradle 빌드 설정을 한다

빌드유발 > GitHub hook trigger for GITScm polling  체크

Build > Invoke Gradle script 선택

 

Invoke Gradle script 선택 시, 아래와 같이 2가지로 빌드 설정을 할 수 있다.

  1. Invoke Gradle : 서버에 설치된 Gradle 이용한 빌드 수행 (새로받은 프로젝트의 Gradle 버전과 로컬에 설치된 Gradle 버전이 호환되지 않으면 문제가 발생할 수 있음)
  2. Use Gradle Wrapper : 프로젝트 내의 gradle wrapper 이용한 빌드 수행 (서버에 gradle 설치안해도됨. 권장방법)

 

1. Invoke Gradle 설정

Jenkins관리 > global tool configuration 에서 gradle 설정을 아래와 같이 한다.

 

다시 생성한 프로젝트의 구성으로 돌아가 아래와 같이 입력해준다.

Gradle Version 은 바로 위에서 설정한 name명을 입력해주면된다.

Tasks 에 clean과 build 입력해준다.

  • clean : workspace/build 리파짓토리 삭제 task
  • build : build하는 task

 

Tasks에 입력된 값은 빌드할 시, 아래와 같이 수행한다.

$ gradle build
$ gradle clean

 

고급 버튼 클릭 후 하단에 build File에 build.gradle 입력한다.

 

 

2. Use Gradle Wrapper 설정

아래와 같이 Use Gradle Wrapper 체크, Make gradlew executable 체크 후 Tasks는 위와 동일하게 clean과 build를 입력한다.

Tasks에 입력된 값은 빌드할 시, 아래와 같이 수행한다.

$ ./gradlew clean
$ ./gradlew build

 

그러면 Jenkins에 gradle 빌드 환경을 세팅 완료~