페이지 트리

이 페이지는 빌드 및 배포를 상황을 프로젝트 구성원에게 전파하는 목적으로 빌드 및 배포 도구인 Jenkins와 협업 메신저인 Slack 을 연동하는 방법을 제공한다.

사전 조건

다음의 사전 조건이 만족되어야 한다.

Jenkins

  • Version 2.39

Slack

  • Team manager 권한 계정
  • Jenkins  연동용 channel 생성

망 구성

  • Jenkins --[https]→ Slack 접속 가능

설정 흐름

설정은 아래의 과정으로 진행한다.

Step 1)  Slack 설정

  • Jenkins App 설치 및 설정

Step 2) Jenkins plugin 설치 및 설정

Step 3) Jenkins job 단위로 post-build action 설정

Slack 구성

Step 1) Jenkins App 설치

Team menu >> Apps & Integrations >> Manage >> Apps  페이지로 이동하여 "Jenkins CI" 앱을 설치한다.


Step 2) Jenkins CI 클릭 >> Add Configuration

이미 configuration이 추가했다면 연필 아이콘을 클릭하여 편집 화면으로 이동한다. 

  • Post to Channel: 메시지가 표시될 기본 channel 설정 (Jenkins job 별로 설정 가능)
  • Token: Jenkins에서 Slack에 접속할 때 사용할 token
  • 나머지 항목은 설정하지 않아도 됨

Jenkins plugin 설치 및 설정

Step 1) Slack Plugin 설치

Jenkins 관리 >> Manage Plugin >> Available 화면으로 이동

Slack Notification Plugin을 찾아 check box 선택 >> Install without restart 클릭

(경고) Jenkins 2.74의 경우 Plugin 2.0 설치 권장

Step 2) Jenkins 재시작

Slack Notification plugin은 Jenkins 재시작을 요구한다. Restart Safely plugin이 설치된 경우 Jenkins menu에서 Restart Safely 메뉴를 선택하여 Jenkins를 재기동 시킨다.

Step 3) Global 설정

Jenkins 관리 >> Configure System 메뉴를 선택하여 global 설정 페이지로 이동한다.

Global Slack Notifier Settings 섹션으로 이동하여 세부 설정을 진행한다.

  • Team Subdomain: Slack에 등록된 team URL의 subdomain 입력 (예: https://curvc.slack.com 이라면 "curvc"가 subdomain)
  • Integration Token: Slack 설정의 Token을 복사하여 붙여넣기
  • Channel: Jenkins 메시지가 표시될 default Slack channel 설정. Job 구성에서 job 단위로 다른 channel 설정 가능 (예: #curvc-ci)
  • Build Server URL: Slack message에 링크될 Jenkins 서버 주소 설정. 주소 마미막에 '/' 문자 입력 (예: http://jenkins-demo.curvc.com:78180)

Jenkins Job 설정

Slack Channel에 빌드 상태 변경를 메시지를 표출하기 위해 Job을 구성한다.

Step 1) Job 설정 페이지로 이동

Jenkins >> Job 이름 >> Configure 페이지로 이동한다.

Add post-build action 을 펼쳐 >> Slack Notifications 메뉴를 선택한다.

Step 2) 메시지 생성할 이벤트 설정

  • Slack channel에 표시될 이벤트를 모두 선택한다.

Step 3) 추가 정보 설정

Advanced... 버튼 클릭

  • Team Subdomain: Global 설정과 동일하다면 설정하지 않아도 됨
  • Integration Token: Slack 설정의 Token. Global 설정과 동일하다면 설정하지 않아도 됨
  • Project Channel: Jenkins 메시지가 표시될 default Slack channel 설정. Global 설정과 동일하다면 설정하지 않아도 됨

Slack에 나타나는 빌드 수행 내용

Jenkins와 Slack 연동되면 빌드 상황이 Slack channel에 메시지로 전송된다. 아래는 Slack channel에 표시된 빌드 정보의 예를 보여준다.


  • 레이블 없음