Generic Web Trigger 설정

HD.Y·2024년 5월 7일
0

한화시스템 BEYOND SW

목록 보기
58/58
post-thumbnail

Generic WebHook Trigger 를 설정하게 된 배경

  • 본 내용은 부트캠프 파이널 프로젝트 종료 후 적용한 것들을 정리하기 위한 글입니다.
  • 기존에는 CI/CD 환경 구축 시 일반적으로 깃허브에서 Web Hook 트리거를 설정하여 젠킨스 파이프라인이 발동되었었다.
  • 하지만, 파이널 프로젝트 시 깃허브 레포지토리 구조가 아래와 같이 하나의 레포지토리에 백엔드와 프론트엔드가 동시에 존재하는 구조로 진행이 되었다.

  • 이러한 구조로 개발이 되다보니, 만약에 백엔드 코드를 수정 후 develop 브랜치에 Merge 시 젠킨스에서는 백엔드와 프론트엔드 파이프라인이 동시에 실행되는 문제가 발생하였다.

  • 이 문제를 해결하기 위해 알아보던 중 Generic WebHook Trigger 에 대해 알게되어 적용하게 되었다.


설정하는 방법 🧐

1. 젠킨스 대시보드에서 Generic WebHook Trigger 플러그인을 설치 한다.
2


2. 깃허브에서 Generic WebHook Trigger 를 위한 설정을 아래 단계로 진행한다.

  1) 깃허브 레포지토리에서 Settings - Webhooks를 클릭한다.

  2) Payload URL
   ➡ http://공인IP URL:포트번호/generic-webhook-trigger/invoke?token=token
   ➡ 공인IP URL과 포트번호만 변경하고, 나머지는 다 동일하게 작성한다.

  3) Content type : application/json 으로 선택한다.

  4) Send me everything 을 선택한다.
3

3. 젠킨스 파이프라인의 구성에서 설정을 아래 단계로 진행한다.

  1) Build Triggers에서 "Generic Webhook Trigger" 를 선택한다.
4

  2) param 추가를 클릭하여 아래와 같이 3개를 추가해준다.

    ➡ Merge 가 됬는지 여부를 확인하기 위한 조건이다. / $.pull_request.merged

    ➡ 라벨(Label) 이름을 확인하기 위한 조건이다. / $.pull_request.labels..name

   ➡ 브랜치명을 확인하기 위한 조건이다. / $.pull_request.base.ref


  3) Token에는 그냥 token 이라고 입력해준다.
8


  4) 해당 파이프라인에서 어떠한 조건일때 동작시킬 지 입력해준다.

    ➡ 나는 develop 브랜치에 backend를 포함하는 라벨이 Merge 됬을때 트리거가
      발동되도록 설정하였다.
   ➡ Expression : (?=.*true)(?=.*develop)(?=.*backend.*).*
   ➡ Text : $MERGED $REF $LABEL


  • 여기까지 하면 모든 설정이 끝난다.

  • 이제 깃허브에서 develop 브랜치에 "backend" 라벨을 달고 Merge 시 해당 설정을 한 백엔드 파이프라인만 실행이 될 것이다.

profile
Backend Developer

0개의 댓글