Maven 환경 셋팅
젠킨스에서 GitHub에 소스 코드가 변경될 때 Maven 프로젝트를 로컬에 빌드하는 배포 자동화 시스템을 구축할 것이다.
1. Jenkins 화면 왼쪽 메뉴에서 "Jenkins 관리" 클릭

2. Dashboard > Jenkins 관리 > Tools : 환경설정
- Maven Installations 설정


3. Dashboard > Jenkins 관리 > Plugins > Available Plugins: 플러그인 설치
(1) GitHub Integration 설치

(2) Maven Integration 설치

4. 새로운 Item 만들기

(1) Item 이름 입력 후 "Freestyle Project"로 선택 후 OK

(2) Item 환경 설정
- GitHub Project(Repository) URL 입력

- 소스 코드 관리 입력
* 연결할 Repository가 비공개인 경우 Credentials를 추가해야 한다.

Credentials 추가하는 방법
Username: GitHub 로그인 아이디
Password: 토큰 (토큰 발급시 Scope에 repo, admin:org, admin:repo_hook 세 부분에 체크해야 한다)
ID: Jenkins 내부에서 사용시 보여질 식별 이름


- Branch 설정 (Branches to build)
default branch명은 "master"인데 본인이 사용하는 브랜치 명으로 설정한다.

5. GitHub Webhooks 등록
GitHub Webhook은, 특정 이벤트 발생 시 다른 URL로 API 호출을 할 수 있게 한다. GitHub에 소스코드를 올렸을 때
GitHub ->(Webhook)-> Jenkins 로 build 요청할 수 있게 되는 것이다.
GitHub에 접속해 해당 Repository > Settings > (좌측) Webhooks > Add webhook을 차례대로 클릭한다.


지금 local 환경에 설치 중이라 Payload URL에 localhost 주소를 입력했는데, 사진과 같이 localhost로는 절정이 되지 않는다.
따라서 ngrok을 사용해 GitHub -> 로컬 서버에 접근 할 수 있도록 추가 작업이 필요하다.
- ngrok으로 로컬 네트워크 터널 열기
ngrok은 쉽게 말하면 외부에서 (방화벽을 넘어) 로컬에 접속할 수 있도록 해주는 기능이다. 로컬에서 개발시 외부 애플리케이션 등 외부로부터 현재 작업중인 로컬과 연결할 수 있어 개발 단계에서 유용하게 쓸 수 있다.
(1) https://ngrok.com/ 에 접속해 회원가입 (무료)
(2) ngrok 설치
터미널에서 아래 명령어를 입력해 ngrok을 설치한다.
$ brew install ngrok/ngrok/ngrok
(3) 할당된 Authtoken으로 설정
회원가입 한 사이트에서 Your Authtoken 탭을 찾아 커맨드라인 채로 복사해 터미널에 입력한다.

$ ngrok config add-authtoken {your_authtoken}
(4) 터미널에서 자신에게 할당된 Forward url 확인
$ ngrok http http://localhost:8080

위의 사진에서 "Forwarding" 부분에 있는 주소가 곧 자신에게 할당된 URL이다. 이 URL은 ngrok 접속 할때마다(로컬 네트워크 터널을 열 때마다) 변경된다.
**주의할 점**
위의 명령어를 입력한 상태에서 종료하면 할당된 URL을 더이상 사용하지 못하게 된다. 즉, 로컬에서 작업 중인 경우 connection을 종료하지 말 것!!
위의 URL을 복사해 다시 GitHub에 돌아가 Payload URL에 입력한 뒤 저장하면 등록 끝!
https://{your_forwarding_url}/github-webhook/

6. Jenkins 프로젝트(Item) 설정
(1) 젠킨스 Dashboard > Item 선택 > 구성(Configuration) 탭에서 "Build Steps" 에서 Invoke top-level Maven targets를 선택.
Goals 부분에는 빌드 명령어를 적는데, 아래와 같이 입력했을 경우 $ mvn clean compile package 이렇게 커맨드가 실행된다.

(2) 빌드 유발에서 GitHub hook trigger for GITScm polling에 체크.
마지막으로 이 부분을 체크해야 GitHub에 push했을 때 자동으로 Jenkins에 빌드 요청이(?) 들어간다. 즉 빌드가 유발된다.

이제 GitHub으로 소스 코드를 Push 하면 아래 사진과 같이 자동으로 Jenkins에서 build 된다. 성공!

/Users/{your_name/.jenkins/workspace/{project_name}/target/
위의 경로에 들어가면 .jar 확장자 파일이 생성되어 있을 것이다.

참고 :https://young1403.tistory.com/96
'Study > Server' 카테고리의 다른 글
[Jenkins] (3) 빌드 후 애플리케이션 자동 실행 설정 시도하기 (권장❌) (0) | 2024.08.27 |
---|---|
[Jenkins] 비밀번호 잊어버렸을 때 변경하기 (0) | 2024.08.26 |
[Jenkins] (1) Jenkins란? Mac 로컬에 설치하기 (0) | 2024.08.21 |
Apache Airflow 설치 (+ MySQL) (0) | 2023.12.13 |
[Elasticsearch] Kibana 설치하기 (0) | 2023.12.04 |