GitHub Actions는 CI/CD를 위한 강력한 도구이다. 소프트웨어 개발 과정에서 다양한 작업들을 자동화할 수 있는데, 그 중 하나가 빌드나 테스트의 성공 및 실패를 Slack으로 알림 보내는 것이다. 이 글에서는 GitHub Actions과 Slack을 연동하는 방법에 대해 설명한다.
슬랙 앱 생성
먼저, Slack 알림을 받기 위해서는 Slack 앱이 필요하다.
1. Slack API 사이트에 접속
2. "Create an App" 버튼을 클릭한다.
3. "From scratch" 옵션을 선택하고 앱 이름과 워크스페이스를 설정한 후, "Create App"을 클릭한다.
4. 왼쪽 메뉴에서 "Incoming Webhooks"을 클릭하고, 페이지 상단의 "Activate Incoming Webhooks" 스위치를 켠다.
5. "Add New Webhook to Workspace"를 클릭하여 새 웹훅을 추가한다.
6. 알림을 받고 싶은 채널을 선택하고, "허용" 버튼을 누른다.
7. 생성된 웹훅 URL을 복사한다. 이 URL은 GitHub Actions 설정에서 사용된다.
GitHub Actions 설정
이제 GitHub Actions를 설정하여 빌드나 테스트 결과를 Slack으로 보낼 수 있도록 한다.
1. GitHub 저장소로 이동하여 ".github/workflows" 디렉토리를 생성한다. 여기에 워크플로우 파일을 생성한다. (예: "main.yml") (이미 있다면 생략해도 괜찮다.)
2. 워크플로우 파일에 steps 마지막에 다음과 같이 작성하여 Slack 성공또는 실패 알림을 보낼 수 있도록 설정한다.
- 성공한 경우에만 보내는 알림
- name: Notify Slack on Success
if: success() # 이 step은 job이 성공한 경우에만 실행된다.
id: slack-success
uses: slackapi/slack-github-action@v1.24.0
with:
payload: |
{
"channel": "채널 ID",
"attachments": [
{
"color": "#36a64f", # 성공시 연두색
"title": "${{ github.repository }}", # 제목은 깃헙 레포지토리
"title_link": "https://github.com/${{github.repository}}", # 제목 클릭시 레포지토리로 이동
"text": "GitHub Action 성공",
"fields": [
{
"title": "Repository",
"value": "${{ github.repository }}",
"short": true
},
{
"title": "Tag",
"value": "${{ github.ref_name }}",
"short": true
}
]
}
]
}
env:
SLACK_WEBHOOK_URL: "위에서 설정한 WEBHOOK URL"
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
- 실패한 경우에만 보내는 알림
- name: Notify Slack on Failure
if: failure() # 이 step은 job이 실패한 경우에만 실행됩니다.
id: slack-failure
uses: slackapi/slack-github-action@v1.24.0
with:
payload: |
{
"channel": "채널 ID",
"attachments": [
{
"color": "#ff0000", # 실패시 빨간색
"title": "${{ github.repository }}", # 제목은 깃헙 레포지토리
"title_link": "https://github.com/${{github.repository}}", # 제목 클릭시 레포지토리로 이동
"text": "GitHub Action 실패 :x:",
"fields": [
{
"title": "Repository",
"value": "${{ github.repository }}",
"short": true
},
{
"title": "Tag",
"value": "${{ github.ref_name }}",
"short": true
}
]
}
]
}
env:
SLACK_WEBHOOK_URL: "위에서 설정한 WEBHOOK URL"
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK
성공 실패 여부 관계없이 알림을 보내고 싶다면 두개 다 추가하면 된다.
결과
이 글을 통해 GitHub Actions과 Slack을 연동하는 방법에 대해 알아보았다. 이제 빌드나 테스트의 성공, 실패 여부에 따라 자동으로 Slack 알림을 받을 수 있다. CI/CD 프로세스를 더욱 효율적으로 관리할 수 있게 되었습니다. 이 외에도 GitHub Actions은 다양한 자동화 작업을 수행할 수 있으니, 더 많은 활용 방법을 찾아보시기 바란다.
'기타' 카테고리의 다른 글
[Shebang] Shebang(#!)이란? (0) | 2023.09.08 |
---|---|
[암호화 기법] 봉투 암호화 (Envelope encryption) (0) | 2023.08.25 |
[Redis] Docker로 redis 설치 및 GUI 붙이기 (0) | 2023.04.10 |
[Git] 특정 파일만 stash 하는 방법 (git stash) (0) | 2022.12.14 |
[Git] 원하는 지점의 커밋으로 되돌아가는 방법 (git reset --hard) (0) | 2022.12.14 |