새소식

300x250
5. 개발도구/Jenkins

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

  • -
728x90

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

 

안녕하세요. 갓대희 입니다. 이번 포스팅은 [ Jenkins와 github 연결하기 ] 입니다. : ) 

 

이번 포스팅은 Jenkins와 Github을 연동하는 것이 기본 목적이긴 하지만 이후 Github Push가 바생하면 해당 이벤트를 캐치하여 Jenkins를 통해 자동 빌드 하기위해 사전 작업을 하려고 한다.

 

물론 상용 서버에서 이렇게 업무를 처리하진 않겠지만, 개인적으로 공부 할 때, 매번 Jenkins를 빌드 클릭 하지 않아도 되니 편하지 않을까 해서, 그리고 무엇보다 간단하니까! 작업 해보려 한다.

 

 

0.github 계정 설정 

▶ Private 저장소가 아니라 Public 저장소를 사용하면 해당 단계는 Skip해도 무방하다. 

 - Settings

 - Developer settings

 - Personal access tokens

 - Generate new toekn

 - 원하는 tokken명 설정 및 Select scopes(범위 선택)을 다음과 같이 처리 해두었다.

 - access tokens 발급 내역을 확인 할 수 있다.

 

1.jenkins 설정 

▶ 발급한 toekns 정보를 이용하여 jenkins와 github을 연동해 보자.

 - Jenkins 관리 > 시스템 설정 클릭

 - 하단으로 이동 하여 Github 관련 설정 > 원하는 Name 지정 > Add 클릭

 - Domain : Global credentials (unrestricted) 선택

 - Kind : Secret text 선택

 - Secret : 위에서 생성한 토큰 입력

 - ID : 본인이 지정하는 식별자(ID) 입력

 - Test connection 클릭시 정상 연동 확인

2.jenkins Job 생성 

▶ 신규 Item 생성 

 - New Item(새로운 Item 클릭)

 - 원하는 Project명 입력 > Freestyle project 클릭

 - General > Github project > Project url > 본인의 github project URL 입력

 - 소스코드관리 > Git 클릭 > Repository URL 입력 > Credentials (위에서 만든 Credential 선택) > Branch 정보 입력

 - Build 클릭 후 결과 확인

 - 빌드에 성공 하였다면, 본인의 Github과 연동 결과도 확인할 수 있다.

이로써 아주 기본적인 Jenkins와 github 프로젝트의 연결 작업은 끝났다.

다음엔 jenkins를 이용하여 원격 배포 작업을 해보도록 하자.

 

아. 나와 같은 경우는 gradle build를 사용한 스프링 부트 프로젝트를 연동 하였는데, 혹시나 하여 그래들 빌드 하여 올바른 jar 파일이 생성 되었는지도 확인하고, 추가 하여 올린다.

 

▶ Build > Command 입력

./gradlew build

물론 나와 같은 경우 올바르게 파일이 생성되었나 확인하기위해 몇가지 명령어를 더 추가 하였다.

 

▶ 결과

Started by user 갓대희
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/goddaehee_project
using credential goddaehee_project
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url https://github.com/gdh/goddaehee_project.git # timeout=10
Fetching upstream changes from https://github.com/gdh/goddaehee_project.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials goddaehee_himo_project
 > git fetch --tags --progress -- https://github.com/gdh/goddaehee_project.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision 273bb28fd254905829dca0298fa5ae2a521a5f23 (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 273bb28fd254905829dca0298fa5ae2a521a5f23 # timeout=10
Commit message: "커밋 코멘트"
 > git rev-list --no-walk 273bb28fd254905829dca0298fa5ae2a521a5f23 # timeout=10
[goddaehee_project] $ /bin/sh -xe /tmp/jenkins2271180394137093632.sh
+ echo >> project Build Start!
>> project Build Start!
+ ./gradlew build
Starting a Gradle Daemon (subsequent builds will be faster)
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> Task :classes UP-TO-DATE
> Task :bootJar UP-TO-DATE
> Task :jar SKIPPED
> Task :assemble UP-TO-DATE
> Task :compileTestJava NO-SOURCE
> Task :processTestResources NO-SOURCE
> Task :testClasses UP-TO-DATE
> Task :test NO-SOURCE
> Task :check UP-TO-DATE
> Task :build UP-TO-DATE

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 45s
3 actionable tasks: 3 up-to-date
+ echo >> pwd
>> pwd
+ pwd
/var/jenkins_home/workspace/goddaehee_project
+ echo >> go jar
>> go jar
+ cd ./build/libs
+ ls
+ grep 0.0.1
+ tail -n 1
+ JAR_NAME=0.0.1-SNAPSHOT.jar
+ echo jar name : 0.0.1-SNAPSHOT.jar
jar name : 0.0.1-SNAPSHOT.jar
Finished: SUCCESS

 

300x250
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.