Dazzling 개발 노트
[CI/CD] 6. Jenkins - Slack 연동해서 실시간으로 build 알림 받기 본문
Slack은 모니터링을 위해 아주 간편하고 유용한 도구이다.
Jenkins와 Slack을 연동해 build 성공/실패를 알리는 알림을 설정해 보겠다.
사실 지난 게시글을 연결해서 보았다면 중간중간에 slack 설정을 이미 많이 보았을 것이다.
이 게시글에서는 slack이 연동된 부분을 집중해서 설명하면서 연동 방법을 다루도록 하겠다.
1. Slack 워크스페이스에 Slack 앱 추가
Access Key를 발급받는 방법을 다루는 게시글에서 언급한 내용이지만 한 번 더 설명한다.
Slack workspace에서 앱 > Jenkins 추가 > Jenkins 앱을 채널에 추가한다.
다음 화면의 3단계에서 표출되는 통합 토큰 자격 증명 ID를 복사하여 별도로 저장해 둔다.
Slack 워크스페이스가 없는 경우 생성 후 진행한다. 워크스페이스 생성 관련 내용은 이 게시글에서 다루지 않는다.
2. Jenkins > Jenkins 관리 > System > Slack
아래와 같이 입력한다.
- workspace : 워크스페이스명을 입력한다.
- credential : 위에서 저장해둔 slack token을 사용해 생성한 Credential 을 선택한다. (Credential 설정 방법)
- Default channel/ member id에 알림을 보낼 slack 워크스페이스의 채널명을 입력한다.
3. 연동 확인하기
위 설정에서 오른쪽 하단에 Test Connection 버튼을 클릭해 Jenkins와 Slack이 제대로 연동되었는지 확인한다.
정상적으로 연동되면 아래와 같은 테스트 메시지가 Slack으로 전송된 것을 확인할 수 있다.
4. Pipeline에서 Slack으로 알림 보내기
Script에서 알림을 보내고 싶은 부분에 slackSend 함수를 사용해서 Pipeline Script의 내용을 수정한다.
- channel : 메시지를 전달할 슬랙 채널
- message : 슬랙 채널에 전달할 메시지
post {
success {
slackSend (
channel: '#jenkins',
color: '#00FF00',
message: "SUCCESS: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
)
}
failure {
slackSend (
channel: '#jenkins',
color: '#FF0000',
message: "FAIL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})"
)
}
}
알림이 잘 오는 것을 확인할 수 있다!
참고
https://junhyunny.github.io/information/jenkins/jenkins-slack-notification/