JAVA/프로젝트

배포 자동화 - jenkins, ngrok, Webhooks

whyHbr 2024. 11. 26. 15:17
728x90
반응형

 

Jenkins build CI 자동화

 

https://www.jenkins.io/download/

 

Download and deploy

Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software

www.jenkins.io

젠킨스 설치. 

디폴트로 설정 후 next. 포트 번호는 마음대로 정해면 된다. 나는 7070

다른 글 보면 Unlock Jenkins 라는 창이 뜨는데 나는 안떠서 직접 localhost:7070 접속해주었다. 

install suggested plugins - > create Frist Admin User 생성 후

localhost:지정포트번호 접속하면 된다.

 

새로운 item 생성 후, General 들어가 설정

설정

GitHubProject- 기존 Board-Server 경로

소스 코드 관리 - Git - Repository Url 에 repository url 설정(https://github.com/깃허브이름/Board-Server.git

 

Credentials 설정:

젠킨스 dashboard - jenkins 관리 - Credentials 

add credentials - 생성 후 configration - Credentials  에 설정하기.

credentials 정보를 가지고 깃허브에 접속하는 것이라고 한다.

 

Branches to build- 빌드할 브랜치.

 

빌드 유발 - GitHub hook trigger for GITScm polling 

웹훅을 사용해 CI를 자동화할 플러그인.이걸 사용하려면 Webhook, ngrok 을 설정, 설치 해줘야함.

 

위 설정한 repository - setting - webhooks - add webhooks

Payload Url - 로컬 호스트 명시가 안되기 때문에 ngrok 를 통해 포워딩해 실제 push 가 발생 했을 때 젠킨스에게 알려주기 위한 값

 

https://ngrok.com/

다운로드.

다운로드한 ngrok.exe 파일에 들어가 

ngrok http 젠킨스포트번호

접속해 젠킨스가 잘 뜨는지 확인 후 Forwarding 주소뒤에 /github-webhook/ 를 추가해서 payload url 에 작성한다.

content type 은 json 으로 변경하면 된다. 

 

Build Steps 은 파이프 라인을 따로 만들어 줘야 한다
dashBoard - jenkins 관리 - Tools 
생성해준 board-server를 gradle version에 설정.
task 는 build

 

 

설정 완료. 지금 빌드 를 실행 - console output 

 

C:\ProgramData\Jenkins\.jenkins\workspace\board-server\build\libs

이 경로에 들어가 snapshot.jar 파일이 생성됐는지 확인

변경된 값이 없다면 재빌드 해도 파일이 생성되지 않는다!

 


원래 application.properties 는 ignore에 등록하고 application.properties.file이라는 파일을 깃허브에 올렸다. 이렇게 하니 빌드 실패가 나와 실제 properties를 깃허브에 올렸는데 이걸 properties.file로 관리하면서 빌드 성공하는 방법이 없으려나...

728x90