티스토리 뷰

GitHub Actions를 이용해 자동 배포를 운영하다 보니 배포될 때마다 타팀에서 종종 문의가 온다.

지금 누가 배포중인가요?
배포 끝났나요?
서비스 화면이 갑자기 안보여요.

 

개발팀은 GitHub Actions에 직접 들어가면 확인할 수 있지만 팀원 모두가 매번 Actions 페이지를 확인하는 것도 번거롭다.

그래서 GitHub Actions에서 배포가 시작되거나 성공/실패했을 때 Slack 채널로 자동 알림이 오도록 설정했다.

 

설정을 완료하면 최종적으로 이렇게 슬랙 알림이 온다.

 

 

 

 

1. 구조 확인

dev 브랜치 Push / Merge
        ↓
GitHub Actions 실행
        ↓
배포자 확인
        ↓
Slack 배포 시작 알림
        ↓
서버 배포
        ↓
   성공 / 실패
     ↓     ↓
    ✅     ❌
        ↓
Slack 결과 알림

필자는 기존에 GitHub Actions 자동 배포가 구축되어 있어 Slack 알림 부분만 추가했다.

 

[자동 배포 구축은 아래 글을 확인해주세요 ⬇️ ]

2026.06.21 - [그외 기록/운영 및 설정] - [GitHub Actions] Node.js 서버 자동배포 설정하기

 

 

 

 

2. Slack App 생성하기

2-1. Create an App 클릭

Slack Apps 페이지에서 앱을 생성한다.

 

 

 

2-2. Blank app 클릭

 

 

 

2-3. 앱 이름과 배포 알림을 받을 Slack Workspace 선택

  • App Name: GitHub Deploy Bot
  • 회사 Slack Workspace 선택

 

 

 

3. Incoming Webhook 설정

3-1. Activate Incoming WebhooksOn으로 활성화

 

 

 

3-2. Add New Webhook 클릭

 

 

 

3-3. 배포 알림을 받을 채널을 선택

 

 

 

 

설정이 완료되면 Webhook URL이 발급된다.

Webhook URL을 알고 있으면 해당 채널로 메시지를 보낼 수 있기 때문에 관리에 주의한다.

 

 

 

4. GitHub Actions Secret 등록

경로: GitHub Repository → Settings → Secrets and variables → Actions → New repository secret 클릭

 

 

  • Name: SLACK_WEBHOOK_URL
  • Secret: 위에서 발급받은 발급받은 Slack Webhook URL

 

 

 

5. deploy-dev.yml 작성

5-1. GitHub ID와 이름 매핑

GitHub Actions에서는 ${{ github.actor }}를 통해 워크플로우를 실행한 사용자의 GitHub ID를 가져올 수 있다.

그대로 Slack 메시지에 GitHub ID가 노출되는데, case문으로 GitHub ID와 이름을 매핑하여 실제 팀원의 이름이 표시되도록 했다.

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Set deployer
        run: |
          case "${{ github.actor }}" in
            githubId_1)
              DEPLOYER="김지은"
              ;;
            githubId_2)
              DEPLOYER="이지은"
              ;;
            githubId_3)
              DEPLOYER="박지은"
              ;;
            *)
              DEPLOYER="${{ github.actor }}"
              ;;
          esac

          echo "DEPLOYER=$DEPLOYER" >> "$GITHUB_ENV"
 

 

5-2. 배포 시작 Slack 알림

배포가 시작되기 전에 배포중이라는 알림을 보내야 하기 때문에 실제 배포 step보다 위에 위치시킨다.

      - name: Slack deploy notification
        run: |
          curl -X POST \
            -H 'Content-type: application/json' \
            --data "{\"text\":\"🚀 ${DEPLOYER}님이 dev 배포를 시작했습니다.\"}" \
            "${{ secrets.SLACK_WEBHOOK_URL }}"



      - name: Deploy to dev server
        ...

 

 

5-3. 배포 성공/실패 알림 추가

      - name: Deploy to dev server
        ...

      - name: Slack deploy success notification
        if: success()
        run: |
          curl -X POST \
            -H 'Content-type: application/json' \
            --data "{\"text\":\"✅ ${DEPLOYER}님의 dev 배포가 완료되었습니다.\"}" \
            "${{ secrets.SLACK_WEBHOOK_URL }}"

      - name: Slack deploy failure notification
        if: failure()
        run: |
          curl -X POST \
            -H 'Content-type: application/json' \
            --data "{\"text\":\"❌ ${DEPLOYER}님의 dev 배포가 실패했습니다.\"}" \
            "${{ secrets.SLACK_WEBHOOK_URL }}"

 

 

 

6. App icon 변경하기

마지막으로 Slack에 표시되는 GitHub Deploy Bot의 아이콘을 변경해보자.

기본 아이콘을 사용해도 문제는 없지만 자동배포 알림임을 한눈에 알아볼 수 있도록 원하는 이미지를 설정해주었다.

 

먼저 Slack Apps 페이지로 이동한다.

https://api.slack.com/apps

GitHub Deploy Bot 클릭 → Basic Information → Display Information에서 App icon을 변경할 수 있다.

+Add App Icon를 클릭해 원하는 이미지 파일을 업로드하고 저장하면 이후 Slack 배포 알림에서도 변경한 아이콘이 표시된다.
*정사각형 이미지 권장

 

변경 완료!

 

 

 

7. 적용 결과 확인

 

Total
Today
Yesterday