[CI/CD] GitHub Actions에서 Slack에 알림 보내기 (상태 확인 가능)

General Dong·2025년 11월 1일
0

CI/CD

목록 보기
13/13
post-thumbnail

GitHub Actions의 장점 중 하나는 다른 사람들이 공유한 Action을 가져와서 사용할 수 있다는 점이다.
나는 CD 과정이 진행되면 해당 워크플로우의 진행 상태와 성공 여부를 확인할 수 있게 Slack 채널에 알림을 보낼려고 한다.
그래서 이와 같은 기능을 담은 Gamesight/slack-workflow-status 라는 Action을 사용할 것이다.

Slack Webhook 설정

Incomming Webhooks 앱 추가

원하는 Slack Workspace에서 Incomming Webhooks 앱을 추가해주자.

Webhook 설정

알림을 보낼려는 채널을 설정하고, 나머지 설정들은 워크플로우마다 커스텀할 수 있기 때문에 기본값으로 설정했다.
그리고 Webhook URL은 미리 복사해두자.

GitHub Actions yaml 파일 설정

위에서 Slack 알림을 위한 준비 과정을 마쳤으니, 워크플로우를 설정할 차례다.

  • 알림 작업은 워크플로우가 성공하든 실패하든 항상 실행되어야 하기에 if: always() 옵션을 붙였다.
  • 가장 마지막에 실행되도록, build와 deploy 작업 실행이 필수조건이 되도록 설정했다.
  • 해당 Action은 read 권한이 필수적이기 때문에, 권한 설정을 명시적으로 했다.
(배포 부분 생략) 
  
slack-workflow-status:
  if: always()

  runs-on: ubuntu-latest
  needs:
    - build
    - deploy

  permissions:
    actions: read

  steps:
    - name: Workflow 결과 Slack에 알림
      uses: Gamesight/slack-workflow-status@master
      with:
        repo_token: ${{secrets.GIT_TOKEN}}
        slack_webhook_url: ${{secrets.SLACK_WEBHOOK_URL}}
        name: "Signal-Buddy Workflow Bot"
        icon_url: "https://github.githubassets.com/assets/GitHub-Mark-ea2971cee799.png"
  • repo_token : 적용하는 GitHub Repository의 접근 및 워크플로우 실행 권한을 가진 GitHub Token
  • slack_webhook_url : 위에서 미리 복사해둔 Slack Webhook URL
  • name : 알림을 해주는 사용자 이름
  • icon_url : 알림을 해주는 사용자의 프로필 사진의 URL (나는 GitHub 아이콘 URL로 설정)

위 옵션을 제외한 더 자세한 사항은 밑에 GitHub 링크를 참고하면 된다.

결과

각 Job의 성공 여부를 알 수 있고, 해당 워크플로우의 상세 내역을 바로 확인할 수 있게 링크가 연결되어 있어 매우 편리하다!


소감

GitHub Actions는 다양한 Action을 공유할 수 있다는 점이 큰 장점 중 하나라고 생각된다. 아직까지는 다른 사람들이 만들어둔 것들을 활용하기만 했다면, 다음번에는 직접 코드를 작성하여 나만의 Action을 만들어 볼 생각이다.


참고

Gamesight/slack-workflow-status | GitHub

profile
개발에 대한 기록과 복습을 위한 블로그 | Back-end Developer

0개의 댓글