반응형

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은 다양한 자동화 작업을 수행할 수 있으니, 더 많은 활용 방법을 찾아보시기 바란다.

반응형
얼은펭귄