상세 컨텐츠

본문 제목

Jenkins CI/CD 로컬 환경 구축

DevOps

by young1403 2024. 2. 2. 13:44

본문

1. jenkins 설치 및 github integration plugin 설치

  • 한가지 의문은 기본 Github plugin에 integrates Github to Jenkins라고 적혀있다. ‘github integration plugin’를 따로 설치하라는 글들을 많이 봤는데 정작 본인은 설치하지 않고 webhook으로 코드를 polling해오고 있다. (설치 안해도 통합 잘 됨)
  • jenkins 설치 및 github integration plugin 설치

 

 

2. 좌측탭에 ‘+ 새로운 Item’ 을 눌러서 Freestyle project로 item 이름을 정해주고 생성.

 

3. item 생성 후, 프로젝트에 해당하는 github 주소를 적는다.

  • 만약에 private repository라면 ‘소스 코드 관리’의 Git을 체크 후 credential을 설정해줘야한다.

3-1. (private repository 인 경우) credential 생성

  • credential +add 버튼을 누르면 아래와 같은 창이 뜬다.
  • Kind : Username with password
  • Username : github login Id
  • password : github token
  • ID : jenkins 내부에서 사용하여 보여질 credential 식별 이름 (자유작성)

 

3-2. (private 경우) **github-token 생성** 방법

  • github main page - settings - Developer settings - personal access tokens - Tokens(classic) - Generate new token

  • 토큰 이름과 만료기간을 설정해준다.
  • Select scopes’ 토큰 권한을 주는 부분이다. 아래의 세 부분에 체크해주자.
    • repo (private repository)
    • admin:org (org,team full control)
    • admin:repo_hook (repository hooks)

  • Branches to build
    • 레포지토리의 default 브랜치 설정

 

4.  [Jekins] Jenkins 관리 - System 을 클릭 후 ‘Github’ 란을 찾는다. 이번에는 item 생성시와는 조금 다르다.

  • Kind : Secret text
  • Secret : 생성한 github token
  • ID : github login ID

 

 

 

5. github으로 돌아가서

github - 해당 repository - settings - (좌측탭) Webhooks - Add webhook 버튼 클릭

  • Payload URL : 로컬주소/github-webhook/
  • Content type : applicatioin/json 클릭
**주의

-  과 같이 localhost로는 설정이 불가능함.
- 외부에서 특정 주소를 통해 local로 접속할 수 있도록 설정이 필요
- ngrok을 사용하여 로컬서버를 접근 가능하게 하자.
참고 : <https://blog.outsider.ne.kr/1159**>

 

Forwarding 탭을 보면 해당 localhost:port에 접근가능한 외부 주소가 보인다.

 

 

6. [Jenkins] Dashboard - Jenkins 관리 - Tools

  • gradle 혹은 maven 선택 후 버전 설정

 

7. [Jenkins] Dashboard - Item선택 - Configure(구성) 

  • Build Steps에서 Invoke (gradle or maven) 선택 후 build 작성.(아래는 maven 기준)

  • 여기까지 하면 프로젝트에서 github으로 push하면 jenkins에서 build 까지 성공되는 걸 볼 수 있을 것이다.

8. [Jenkins]

  • ‘post build task’ 플러그인 설치. - 빌드 후 할 작업(배포)
  • Dashboard - item클릭 - configuration(구성)
  • 빌드 후 조치 에서 local 경로를 바라보는 script를 작성하면 끝.! 프로젝트가 실행되는 것을 볼 수 있을 것 이다. ex) java -jar { ‘.jenkins’ 폴더로 빌드되는 jar파일 경로}

댓글 영역