인프라/Jenkins

Jenkins - Jenkins pipeline Slack notification(젠킨스 빌드 슬랙 알림)

여성게 2020. 3. 22. 21:15

 

오늘 다루어볼 포스팅은 간단하게 젠킨스의 빌드 시작과 성공/실패에 대한 알림을 슬랙으로 받는 방법이다. 간단해서 아주 짧은 포스팅이 될 것 같다.

 

1. Slack Jenkins CI app install

 

예제는 이미 슬랙이 설치되어있고 계정이 있다는 가정에서 진행한다. 채널을 하나 생성해준 후 밑의 Apps 버튼을 누른다.

 

젠킨스(Jenkins)로 검색하여 다운로드 한다.

 

 

알림받을 채널을 입력한다.

 

 

진행하다보면 슬랙의 Team Subdomain과 인증 token을 받을 수 있다. 이러한 데이터를 이용하여 Jenkins에서 Slack과의 연동 설정을 할것이다.

 

 

젠킨스 설정에서 이제 슬랙과 연동을 할 것이다.

 

 

플러그인 관리에서 Slack Notification plugin을 install 해준다.

 

 

이제 Jenkins 설정 > 시스템 설정 > Slack에서 방금 받은 토큰과 Team Subdomain등을 입력할 것이다.

 

 

Test Connection을 클릭 후 Success가 뜬다면 완료 ! 

 

우리는 Multibranch pipeline에서 slack notification을 받을 것이므로, Jenkinsfile에 noti관련 스크립트를 추가할 것이다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
pipeline {
    agent none
 
    environment {
        SLACK_CHANNEL = '#test_notification'
    }
 
    stages {
        stage('Start') {
            steps {
                slackSend (channel: SLACK_CHANNEL, color: '#FFFF00', message: "STARTED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
            }
        }
 
        stage('example build') {
            steps {
                echo 'jenkins sample build ! '
            }
        }
    }
    post {
        success {
            slackSend (channel: SLACK_CHANNEL, color: '#00FF00', message: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
        }
        failure {
            slackSend (channel: SLACK_CHANNEL, color: '#FF0000', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
        }
    }
}
cs

 

Start stage와 post step에 Slack noti script를 추가하였다. 한번 테스트해보자 !

 

 

와우 굿 ! 알림이 왔다. ㅎㅎ 이렇게 Jenkinsfile에 알림 스크립트를 추가하면 프로젝트마다 서로 다른 채널연결이 가능하고, 더 복잡한 조건에 대한 알림이 가능할 것이다 !