공부/기타
[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