Jenkins
[Jenkins] Jenkins 빌드 상태를 Slack으로 자동 알림 보내기
J_Dev
2024. 12. 19. 17:22
1. 서론
- 이번 포스트에서는 Slack과 Jenkins를 연동하여 파이프라인에서 Slack으로 메시지를 보내는 방법을 알아보겠습니다.
2. Slack에서 Jenkins 앱 설치
- Slack 에서 더보기-> 앱 으로 이동합니다.
- 검색창에
Jenkins
입력하고 검색합니다. - Jenkins 앱을 다운로드합니다.
3. Jenkins 설정
1) 플러그인 설치
- Jenkins에서
Slack Notification
플러그인을 설치합니다.
2) Credentials 추가
- Jenkins의 Credentials 설정 화면으로 이동합니다.
- 다음과 같이 설정합니다.
- Domain :
Global Credentials
- kind :
Secret Text
- Secret : Slack 구성 편집에서 생성한
토큰
을 입력
- Domain :
3)Slack 채널 추가
- Jenkins 관리 > System 메뉴로 이동합니다.
- Slack 설정 섹션에서 아래 항목을 입력합니다:
- Workspace: Slack 워크스페이스의 하위 도메인을 입력합니다.
- Credential : 위에서만든 Credential을 선택합니다.
4. 파이프라인 구축
1) 코드 작성
- 아래는 Slack에 빌드 상태를 알리는 Jenkins Pipeline 코드 예제입니다
alwyas
: 성공여부와 상관없이 항상 발행되는 메시지입니다.success
: 빌드성공시 발행되는 메시지입니다,failure
: 빌드실패시 발행되는 메시지입니다.
post {
always {
echo 'Pipeline compoleted!'
slackSend channel: '#netnovel', message: """
📢 *Pipeline 완료*
- *Job*: ${env.JOB_NAME}
- *Build Number*: ${env.BUILD_NUMBER}
- *결과*: ${currentBuild.currentResult}
- *빌드 링크*: ${env.BUILD_URL}
"""
}
success {
slackSend channel: '#netnovel', message: """
✅ *빌드 및 배포 성공!*
- *Job*: ${env.JOB_NAME}
- *Build Number*: ${env.BUILD_NUMBER}
- *빌드 링크*: ${env.BUILD_URL}
"""
}
failure {
slackSend channel: '#netnovel', message: """
❌ *빌드 실패!*
- *Job*: ${env.JOB_NAME}
- *Build Number*: ${env.BUILD_NUMBER}
- *빌드 링크*: ${env.BUILD_URL}
- *확인 후 문제 해결 필요!*
"""
}
}
5. 빌드 테스트
- 위에서 작성한 파이프라인 코드를 사용해 빌드를 실행합니다.
- Slack 채널에서 결과 메시지가 정상적으로 전달되는지 확인합니다.
6. 결론
- 이번 포스트에서는 Jenkins와 Slack을 연동하여 빌드 상태를 Slack 채널로 전송하는 방법을 알아보았습니다.
- 이를 통해 파이프라인 결과를 실시간으로 모니터링할 수 있습니다.
- 추가적인 설정이나 확장이 필요한 경우 공식 문서를 참조해주세요!