젠킨스

[젠킨스] 슬랙으로 알람 보내기

미소여우 2023. 1. 17. 12:19
728x90

배포와 젠킨스 공부가 어느정도 마무리 되었고, 이제 정상 배포되었을 때 슬랙으로 알람을 보내는 작업을 해보았다.

먼저 플러그인 설치를 하자. Jenkins 관리 > Plugin Manager > Available plugins 에서 "Slcak Notification"을 설치 후 재부팅하자. 

시작

나는 이미 설치해서 안 뜬다

그 다음에 슬랙에서 Apps를 누른 후 Jenkins를 입력하여 Jenkins CI를 ADD 눌러주자.

그럼 웹페이지로 다음과 같이 이동을 하고 Add to Slack 눌러주고,

다음에 이동된 페이지에서 Post 보내줄 채널이나 DM을 지정주고 Add Jenkins CI integration을 눌러주면 토큰 값들이 만들어 진다!

그러면 친절하게 등록 방법도 알려주면서 등록을 할 수 있게 된다! 그리고 조금 내리면 서브 도메인과 토큰 ID값을 제공하는데, 이를 젠킨스에 등록하면 된다.

이번엔 Configure System에 들어가서 쭉 내리면 Slack이 추가 된 것을 볼 수 있는데 여기다 값을 입력하면 된다.

Workspace - (위에서 받은) Team Subdomain 입력

Credential은 ADD 눌러서 KIND를 Secret text 지정 하고, 위에서 받은 Credential ID를 눌러주면 된다.

이후 Test Connection을 눌러서 연결이 잘 되어있으면 다음과 같이 문자가 잘 날라온다!!

파이프라인에서 작성

슬랙에서 제공한 페이지를 보면 프리스타일로 하고 나서, 빌드 후 작업으로 Slack Notify를 설정할 수 있다. 근데 나는 파이프라인 스크립트를 통해 배포를 진행하기 때문에 관련 내용을 작성해 주어야 한다. 구글링을 통해 스크립트에 추가해주었다.

pipeline {
    agent any
    tools {
        jdk 'openjdk-17-jdk'
    }
    stages {
        stage('Hello') {
            steps {
                echo 'dev branch deploy start'
                sh 'echo $JAVA_HOME'
                sh 'java --version'
            }
        }
        stage('Checkout') {
            steps {
            }
        }
        stage('Build') {
            steps {
                dir('.') {
                    sh "./gradlew clean build -x test"
                }
            }
        }
        stage('Deploy') {
            steps {
            }
        }
        stage('Stop And Run') {
            steps {
            }
        }
    }
    post {
        success {
            slackSend (channel: '채널ID', color: '#00FF00', message: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
        }
        failure {
            slackSend (channel: '채널ID', color: '#FF0000', message: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' (${env.BUILD_URL})")
        }
    }
}

다른 건 다 무시하고 post 부분만 보고 추가해주면 된다. 특정 채널에 보내고 싶으면 channel이라는 인자를 집어넣어주고, 만약 내가 위에서 지정한 방으로 보내고 싶다면 안 넣고 보내면 된다!

이렇게 해서 잘 끝나면 슬랙으로 알람이 아주 잘 올 것이다!


https://plugins.jenkins.io/slack/

 

Slack Notification

Integrates Jenkins with Slack, allows publishing build statuses, messages and files to Slack channels.

plugins.jenkins.io

 

728x90