[Jenkins] Jenkins GitHub 연동

김관응·2023년 3월 30일

System

목록 보기
4/4

1. ssh 키 생성

jenkins 서버에서 ssh 키를 생성합니다.

# ssh-keygen -t rsa
# cat /root/.ssh/id_rsa
# cat /root/.ssh/id_rsa.pub

2. Private 키 등록

위에서 생성한 private key(id_rsa)를 Jenkins에 등록해줍니다.
Jenkins web -> Credentials -> System -> Global credentials -> Add Credentials
kins : SSH
scope : global
private key : id_rsa 입력.

3. Public 키 등록

깃헙 레포지토리에 public key(id_rsa.pub)을 등록해줍니다.
레포지토리 Settings -> Deploy keys -> Add deploy key
Title : jenkins
Key : id_rsa.pub입력.

4. Webhook 설정

레포 Settings -> Webhooks -> Add webhook
Payload URL : http://{jenkins web}/github-webhook/
Content type : application/json

5. jenkins item 등록

새로운 Item -> Freestyle project -> 소스코드관리 -> Git -> Repository URL : 깃헙 레포url

ssh로 키등록을 했기 때문에 Clone에서 ssh부분을 복사해야합니다.
Credentials는 아까 만들어둔 인증정보를 선택합니다.

Github hook trigger for GITScm polling을 체크해야 푸시를 했을때 자동화를 합니다.

이후 Excute shell에 내 깃 레포 중 restapi 서버 폴더에 들어가 미리 준비해둔 dockerfile을 이용해 빌드와 docker private repository에 push를 진행하게됩니다. 빌드시 이름은 commit 이름을 따라가게 합니다.

현재는 rest api 백엔드 서버에 대해서만 자동화가 되게 했지만 추후 진행하게될 window api 서버, ML서버가 있기 때문에 세개의 서버에 대한 자동화도 수행해야 합니다.

해당 자동화를 하는 방법은 현재 두가지를 생각했습니다.

  1. branch로 나누어 branch별로 각 서버배포 스크립트를 작성한다.
  2. comment의 앞에 구분기호를 붙여 스크립트에 분기를 둔다.

뭐가 더 좋을지는 추후 생각하고 포스팅을 진행할 예정입니다.

profile
엔지니어였던 개발자

0개의 댓글