Jenkins & Github 연동
GitHub Access Token 발급
github에 로그인 한 후 Profile을 클릭하여 나오는 Settings
메뉴를 클릭한다
좌측 하단의 Developer settings
탭을 클릭한다
좌측의 Personal access tokens
탭을 클릭한 뒤 Generate new token
을 클릭한다.
Token description에 설명을 기입한 후 Jenkins에서 필요로하는 권한 Scope를 지정한다
생성이 완료되면 token 값이 생성되는데 이 때 저장해놓지 않는다면 다시 token 값을 확인할 수 없다
Access Token을 이용해 Jenkins에 GitHub 연결
Jenkins 관리
탭의 시스템 설정
을 클릭한다
GitHub Server
문단에 Jenkins에서 GitHub API를 요청하기 위한 정보들을 기입한다. 그 후 Add를 클릭해 Credentials를 추가한다. 바로 아래 그림에서는 "jenkins"라는 credential을 선택한것이 보이지만 처음에는 Credential이 없기 때문에 아무것도 선택할 수 없다. 아래 그림은 그 아래에서 Credential을 생성한 후에 선택한 그림이다.
xJenkins LocationJenkins URL : 인터넷을 통해 접근 가능한 URL을 입력해야함 (그림의 IP는 사설 IP이므로 WebHook에 의해 배포가 정상적으로 전달되지 못할 수 있다.)
GitHub
github API URL : https://api.github.com
Credentials : "아래에서 만들어진 Credential을 선택"
Ngrok
https://blog.outsider.ne.kr/1159
jenkins-url 에는 위에서 설명드렸듯이, 외부에서 접근 가능한 ip 즉, 공인 ip여야 합니다. 또는 게이트웨이(라우터)에서, 포트포워딩을 해주어, jenkins가 동작하는 host로 패킷을 전달받을 수 있도록 설정을 해야합니다. 하지만, 이러한 설정이 일반 가정환경에서는 쉽지 않습니다. 이를 도와주는 것이 바로 Ngrok입니다. 위의 포스트에 정리가 잘되어있으므로 참고하여 설치하시길 바랍니다.
Add Credentials 설정
xxxxxxxxxx
Domain : Global credentials
Kind : Secret text
Scope : Global
Secret : "Github에서 생성한 AccessToken"
ID : "Credentials를 구분하기 위한 식별 이름"
Description : 설명
Credential 추가가 완료 되었다면 우측하단의 Test connection
을 클릭해 연결 확인을 한다 그림과 같이 verified for ~
이 나타난다면 연결이 성공된 것이다.
Jenkins Project 생성
하나의 프로젝트의 테스트, 빌드, 배포를 관리하기 위한 Jenkins Project를 생성한다.
좌측 상단의 새로운 Item을 클릭한다
적절한 이름을 입력한 뒤 Freestyle project
를 선택한 뒤 생성을 마친다
Jenkins Project와 GitHub Project 연결
CI/CD를 담당해줄 Jenkins Project와 대상이 되는 GitHub상에서 형상관리 되고 있는 Project를 연결한다.
생성이 완료된 jenkins project를 클릭한다
좌측의 구성
탭을 클릭한다
General
탭에서 GitHubProject
를 체크한 뒤 연결할 GitHub Project의 Url을 입력한다
같은 페이지 하단의 소스 코드 관리
문단에서 Git
을 체크한 뒤 Repositories
에 연결을 위한 설정을 진행한다. 그 후 Add를 클릭하여 GitHub Project에 연결하기 위해 GitHub 계정정보가 담긴 Credential을 생성한다.
xxxxxxxxxx
Repository URL : https://github.com/galid1/CICDtest.git
Credentials : ~
Credentials에 아래와 같이 입력한다
xxxxxxxxxx
Domain : Global credentials
Kind : Username with password
Scope : Global
Username : "GitHub 계정 ID"
Password : "GitHub 계정 PW"
같은 페이지 하단에 빌드 유발(Build Trigger)
문단에 GitHub hook trigger for GITScm polling를 체크한다
같은 페이지 한단의 Build
문단에서 Build시 사용될 Gradle에 대한 설정을 진행한다. Use Gradle Wrapper
을 체크, Make gradlew executable
체크(체크하지 않으면 권한 에러로 인해 실행이 불가능하다) , Tasks
에는 Build시 사용될 gradle task를 입력한다. (코드를 build 하기위해 build를 입력했다)
Jenkins를 이용한 Build Test
프로젝트 메뉴에서 Build Now
를 클릭하면 연결된 GitHub Project의 코드를 받아와 설정된 Build를 실행한다.
빌드의 결과물은 /var/lib/jenkins/workspace/"Project"/build/libs/ 안에 있다.
'Software Engineering > CICD (jenkins, etc)' 카테고리의 다른 글
Jenkins - AmazonLinux2 에서 Jenkins 구축 및 gitlab 연동 (push 시 자동 빌드) (0) | 2019.07.12 |
---|---|
CI - CI/CD 구성 - 4(GitHub Push시 자동 Jenkins Build,Test,Deploy 설정) (2) | 2019.03.25 |
CI - CI/CD 구성 - 2 (Jenkins 환경 설정 JDK, Git, Gradle) (0) | 2019.03.25 |
CI - CI/CD 구성 - 1 (Jenkins 설치) (0) | 2019.03.25 |
CI/CD - CI/CD 란? (0) | 2019.02.17 |