Development

Slack과 Jenkins 연동

chbae 2023. 4. 20. 04:27
728x90
반응형

Slack, https://slack.com/은 비지니스 협업 애플리케이션이다. 필자는 개발자용 채팅 애플리케이션이라고 말하기도 한다. 사실 잘 모르지만, 개발자들끼리 채팅을 할 때 유용한 기능이 많이 있어서 사용하고 있다.

 

Jenkins, https://jenkins-ci.org/는 빌드 자동화를 위한 지속 통합 툴이라고 한다. 이 둘에 대한 자세한 설명은 블로그를 찾아보기를 권장한다.

 

이글의 목적은 Slack과 Jenkins의 연동, 즉 Jenkins에서 실행한 것들에 대한 결과를 Slack의 특정 채널로 보내주는 기능을 하도록 설정하는 방법이다.

 

필자는 Jenkins를 빌드 CI용도로 사용하고, 빌드를 시작, 성공, 실패에 대한 메시지를 Slack을 통해 보고 있다. 이를 설정하는 방법에 대해 간단히 설명한다.

Slack 설정

  1. Slack Jenkins Application 설치
    https://slack.com/apps 에서 jenkins 검색 후 들어가는 화면에서 원하는 설정의 팀 선택
  2. Jenkins Application 설정
    "Add Configuration" 버튼 클릭 후 원하는 채널 선택하면 Jenkins 설정 방법이 자세히 나옴 Jenkins 설정에서 중요한 것은 아래 스크롤해서 내려가면 나오는 Token값임. 이후 Jenkins 설정이 팀 이름, 채널 이름, Token 값(원래 써있는데 보안상 삭제 :) 이 사용됨.

Jenkins 설정

설정을 위해 Slack의 팀 이름, 채널 이름, Token 값을 미리 알고 있어야 한다. 설정은 간단하다. 아래와 같이 설정한 결과는 Jenkins Job이 돌아갈 때 아래와 같이 메시지가 온다.

  1. Jenkins Slack Plugin 설치 (Manage Jenkins - Manage Plugin - Available - Slack Notification Plugin 설치)
  2. Global Slack 설정 (Manage Jenkins - Configure System에서 Global Slack Notifier Settings 찾아 설정) - 필자는 각 Job에서 따로 추가 설정함 * Build Server URL에는 각자 맞는 설정을 하도록 한다.
  3. 각 Job에서 Local Slack 설정 (각 Job - Configure에서 Slack Notifications 설정) * Advance 설정에서 channel 및 token 추가 설정 가능 (필자는 최신 버전인 jenkins 1.644 사용)
  4. Post-build Actions에 Slack Notifications 추가 위의 과정을 거치면 Slack으로 Jenkins에서 Job이 돌아간 결과를 알 수 있다. Slack는 IOS/Android App도 있어, 언제 어디서든 할 수 있어 Jenkins와 연동하면 유용하게 사용할 수 있다.
728x90