본문 바로가기

Frontned Development/FE 프로젝트 개발

[GITLAB] DISCORD 커스텀 알림 만들기

build가 약 5분정도 걸리는데, 애매하게 신경쓰여서 알림을 만들기로 했다.

현재 나는 discord를 사용 중이기때문에, Discord에 알림을 오는 것을 목표로 했다.

 

방법 1. GITLAB에서 WEBHOOK 설정하기

왼 : gitlab 설정, 오: 현재 파이프라인 개수

 

다음처럼 pipeline에 check를 하면 알림이 온다!

그럼 현재 프로젝트는 파이프라인이 두 단계여서 알림이 두 번 온다.

gitlab에서 이를 커스텀하는 부분까지는 제공 하지 않았다.

나는 성공했을 때, 단 한 번만 알림을 받고 싶었다.

 

방법2. CI 단계에서 WEBHOOK에 직접 메시지를 보내기

찾아보니까 ci단계에서 yml script에서 curl을 사용할 수 있었다.

그러면 그냥 curl로 discord webhook을 호출하면 된다 생각했고, 마지막 CI 단계에서 호출하면 완료 메시지가 한 번만 나한테 오게 될 것이다.

 

curl -i -H "Accept: application/json" -H "Content-Type: application/json" 
-X POST -d "{\"content\": \"${TAG} is successed\"}" 
https://discord.com/api/webhooks/생략

  해당 코드를 완성해서 cmd에서 실행했을 때, 디스코드 알림이 매우 잘 오는 걸 확인하고 gitlab-ci에 추가하여 올렸고 실패했다... 코드는 맞았는데, 안된다.

 

 

원인은 Docker 네트워크에서 cURL을 요청 시, 네트워크 환경이 달라서 꼬이는 현상이었다. 해당 부분의 stage를 별도로 생성해서 적용하니 문제가 해결되었다. 

아무도 이런 문제가 없었어서.... 7시간 가까이 여러 시도를 한 끝에 겨우겨우 찾을 수 있었다.

 

후기

중간에 삽질은 많았지만 그래도 덕분에 cURL이랑 yml 문법 공부를 빡세게 할 수 있어서 즐거웠다... 알림도 일단 한 번만 오도록 만들어서 목표도 달성하였다. cURL로 직접적으로 접근할 수 있으니 스케줄러 기능이랑 결합하면 알림 만들 수 있을 거 같다. 평소에 고정적인 알림을 팀원들에게 전파하는 거 귀찮았는데 이 참에 만들어봐야겠다.

 

승리의 상징