[CI/CD] Jenkins+GitHub WebHook 연동및 자동화 빌드

Coodori·2023년 3월 17일
1

CherishU

목록 보기
6/29

젠킨스 설치 및 Webhook 적용

$ brew install jenkins

젠킨스 실행, 중지, 재시작
$brew services [start/stop/restart] jenkins

localhost:8080으로 접속가능!
(EC2경우 Spring과 포트 겹치기때문에 조정해야한다.)

젠킨스 초기 비밀번호 찾기!

해당 나와있는 주소로
$cat /Users/coodori/.jenkins/secrets/initialAdminPassword
하면 초기 비밀번호가 나온다.

  • 플러그인은 직접 커스텀해도되지만 추천 플러그인 다운로드
  • 정보입력

(여기서부터는 개발서버인 EC2 위에서 진행하였습니다)
차이점은 포트가 9090 과 public ip가 들어가게됩니다.

현재 젠킨스 로그인 방법은 토큰 로그인 밖에 없으므로 깃허브 엑세스 토큰을 생성해야합니다.

개인 프로필 -> settings -> Personal acess tokens ->tokens ->Generate new token

해당 옵션들을 활성화 해줍니다.

  • 이름은 자유롭게 지어도됩니다.
  • 기간은 무한으로 설정했습니다.

해당 토큰을 저장해놓습니다.

  • 해당 페이지를 벗어날 경우 새롭게 발급 받아야합니다.

Git Repository 설정

public repository의 setting 로 들어가서 webhooks 클릭

해당 페이지 입력

  • payload url public domain:port/github-webhook/ 혹은 public ip:port/github-webhook/ 작성!
  • application/json

이후 여기는 최종적으로 잘 작동하는지 확인할 수 있음.

  • 체크 표시 확인

Credentials 만들기

젠킨스 관리로 이동

Credentials 관리 클릭

global 클릭

Add credentials

해당 칸 작성후 Create

  • Username : GitHub 사용자 이름(조직일 경우 조직 이름을 넣어야 정상 동작)
  • Password 는 GitHub에서 발급받은 토큰
  • ID는 자유롭게 작명해도되나 이후 사용하니깐 A라고 지칭함

메인화면 New Item -> Pipeline 선택\

script 에 해당 문서 필요값 수정후 작성

  • Githhub Project 선택 후 url 작성
  • GitHub hook trigger for GITScm polling 선택

pipeline {
    agent any
    stages {
        stage('Checkout') {
            steps {
                git branch: '원하는브랜치명',
                    credentialsId: '위에서 지칭한 A',
                    url: '{GIT리포지토리주소}.git'
            }
        }
    }
}

지금 빌드로 테스트!

성공적으로 작동한다.(해당 버튼을 누르면 로그도 보인다.)

  • 로그확인

아래를 보면 Build History 도 확인할 수 있다.

Webhook 작동 확인

위에 script에서 정의한 branch에서 커밋이 일어나면 자동적으로 빌드가 되며 로그가 쌓인다.


Jenkins + SpringBoot 설정 진행

해당 블로그를 보고 추가로 진행했습니다.
https://kitty-geno.tistory.com/91

중요한 부분은

1. build.gradle에 을 추가한다.

  1. jenkins gradle plugin과 post buid task 설치
  2. 빌드시 스크립트 유발
  • gradle version -> springboot의 gradle-warpper.properties에서 확인
  • Task에 bootJar 입력
  1. 빌드 후 조치
  • Log text -> 로그에 남길 텍스트
  • Script 에는 이제 shell에서 실행시킬 명령어 => 여기서 우리는 백그라운드로 실행할 거기 때문에
    $ nohup java -jar /var/lib/jenkins/workspace/[프로젝트명]/build/libs/[jar파일명] &
  • Tip) work space까지 써주고 평소 빌드하던 경로 이어 적어주기
  1. 그러면 성공!

Spring 작동확인

  • public domain:8080

Reference

https://wan-blog.tistory.com/74
https://junhyunny.github.io/information/jenkins/github/jenkins-github-webhook/
https://kitty-geno.tistory.com/91

profile
https://coodori.notion.site/0b6587977c104158be520995523b7640

0개의 댓글