공부/기타

[Github Action] 1000번째 PR 축하하기

haejang 2024. 6. 18. 15:29
728x90
728x90

 

 

# 들어가며

어느날 오전. 전사 애플리케이션들의 helm chart들이 관리되고 있는 (데봅스 운영/개발팀 사용) 레포지토리에 998번째 PR이 올라왔다.

 

!!!

 

1000번째에 무조건 이벤트 만들어줘야될거같아 진짜 후다다다다닥 github action workflow를 만들어 보았다.

 

# 요구사항

내가 원하는건 아래와 같았다.

1. 1000배수 PR이 오픈될 시, 해당 PR에 축하 메세지 코멘트가 남는 것

2. 그리고 Slack 개발팀 채널에 축하메세지를 보내주는 것

 

# 결과물

name: PR Notification

on:
  pull_request:
    types: [opened]

env:
  PR_NUMBER: ${{ github.event.pull_request.number }}

jobs:
  check-pr-number:
    runs-on: self-hosted
    outputs:
      is_multiple: ${{ steps.check-multiple.outputs.is_multiple }}
    steps:
    - name: Check PR Number Multiple of 1000
      id: check-multiple
      run: |
        if [ $((PR_NUMBER % 1000)) -eq 0 ]; then
          echo "is_multiple=true" >> $GITHUB_OUTPUT
        else
          echo "is_multiple=false" >> $GITHUB_OUTPUT
        fi
      shell: bash

  notify:
    needs: check-pr-number
    if: ${{ needs.check-pr-number.outputs.is_multiple == 'true' }}
    runs-on: self-hosted

    steps:
    - name: Add Comment to PR
      uses: peter-evans/create-or-update-comment@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        issue-number: ${{ env.PR_NUMBER }}
        body: |
          🎉🚀 #${{ env.PR_NUMBER }}번째 PR 축하드립니다!! 🚀🎉

    - name: Send Slack Notification
      env:
        SLACK_WEBHOOK_URL: # 슬랙 웹훅 URL
      run: |
        ACTOR=${{ github.actor }}
        REPO=${{ github.repository }}
        PR_URL="https://github.com/${REPO}/pull/${PR_NUMBER}"
        ACTOR_URL="https://github.com/${ACTOR}"

        curl -X POST -H 'Content-type: application/json' --data "{
          \"text\": \":blob_excited: <${ACTOR_URL}|${ACTOR}> 님이 ${REPO}에 <${PR_URL}|#${PR_NUMBER}번째 PR>을 올려주셨어요! :rocket::tada:\"
        }" $SLACK_WEBHOOK_URL

 

언제 1000번째 PR이 올라올지 모르기 때문에 슬랙메세지 포맷팅을 포기했다.

어쨌든 정말 다 만들자마자 거의 바로 1000번째 PR이 올라왔다.

 

깃헙 코멘트. 성공
슬랙알림. 성공

 

슬랙 메세지를 더 이쁘고 눈에 띄게 하지 못한 점이 아쉽다 (here 핑이라도 걸걸)

2000번째 이벤트 전에는 수정할 예정이다.

 

 

끝~

 

 

 

728x90
728x90