언제 다 되는데... 말 좀 해봐!!
알림을 하나도 설정해둔게 없어서 젠킨스 빌드가 언제 끝나는지 알 수가 없다
이렇게 답답하게는 못산다
디스코드 알림 봇을 만들고 거기에 연결해보자!!
생각보다 굉장히 쉬움!!!
1. Jenkins에서 Discord Notification 설치
젠킨스 설정에가서 Discord를 검색하고 Discord Notification을 설치한다
여기까지 했으면 절반은 한거다
2. 웹 훅 등록
이제 웹훅을 등록할 차례다
알림을 받을 채팅방을 하나 선정하고, 서버 설정에 들어가 아래 사진처럼 순서대로 클릭한다
3. 파이프라인에 DIscord 웹훅 URL 추가
나는 위처럼 성공과 실패의 경우 각각의 알림이 오도록 세팅해두었다
이제 저기 네모친 빨간 박스에 아까 복사해둔 Discord 웹훅 주소를 붙여 넣으면 된다
아래는 파이프라인 전문
더보기
pipeline {
agent any
tools {
jdk ("JDK_21")
// nodejs ("NodeJS_20.16.0") // Node.js 설정 (Node.js 설치 필요)
}
stages {
stage('GitHub Clone') {
steps {
git branch: 'main', credentialsId: 'nakji_lab', url: 'https://github.com/Ratatou2/Nakji_Lab.git'
}
}
stage('Set Permissions') {
steps {
// lab_backend 디렉토리 내 gradlew 파일에 실행 권한 부여
sh 'chmod +x lab_backend/gradlew'
}
}
stage('Build lab_backend') {
steps {
dir('lab_backend') {
// Gradle 빌드 명령어 실행
sh './gradlew build'
}
}
}
stage('Copy JAR to Volume') {
steps {
// JAR 파일 복사
script {
// 복사할 경로
def jarFile = '/var/jenkins_home/workspace/nakji_lab/lab_backend/build/libs/lab-0.0.1-SNAPSHOT.jar'
def targetDir = '/var/jenkins_home/data' // 볼륨 경로
// 대상 디렉토리가 존재하는지 확인하고 없으면 생성
sh "mkdir -p ${targetDir}"
// JAR 파일 복사
sh "cp ${jarFile} ${targetDir}/lab-0.0.1-SNAPSHOT.jar"
}
}
}
}
post {
success {
discordSend description: "알림테스트",
footer: "테스트 빌드가 성공했습니다.",
link: env.BUILD_URL, result: currentBuild.currentResult,
title: "테스트 젠킨스 job",
webhookURL: "{아까 복사해둔 Discord 웹훅 주소}"
}
failure {
discordSend description: "알림테스트",
footer: "테스트 빌드가 실패했습니다.",
link: env.BUILD_URL, result: currentBuild.currentResult,
title: "테스트 젠킨스 job",
webhookURL: "{아까 복사해둔 Discord 웹훅 주소}"
}
}
}
4. 결과
알림이 아주 잘 오는 것을 확인할 수 있다!!! (편-안)