현재 회사에서 웹배포를 진행하는 방식은 아래와 같다.
작업한 base 브랜치를 main 브랜치에 최종 머지 후 배포버전 태그를 푸시한다.
버전 태그 푸시 시, 액션이 트리거되어 웹배포가 자동 진행된다.
이렇게 하고나면 웹배포가 완료되었을 때, PM에게 알려 웹배포가 끝났음을 알린다
배포 후, 미래의 우리 혹은 누군가(?)를 위해 히스토리를 노션 페이지에 따로 기록하는데 사실상 웹배포보다는 코드푸시 배포를 주로 기록하고 있어서 웹배포 히스토리 추적은 어려운 상태이다.
대신해서 슬랙의 release 채널에 관련된 멤버를 모두 태그해서 배포 상태를 알리는데, 배포가 완료되면 다시 수정해서 완료되었음을 알리고 팀의 PM이나 관련 메이커들에게 또 다시 멘션을 한다.
위 방식이 시간이 오래 걸리진 않지만, 은근히 귀찮은 허드렛일(?) 처럼 느껴졌다.
바빠서 깜빡하고 릴리즈 채널에 배포 여부를 올리지 않으면 어김없이 PM으로부터 "배포됐어요?" 라는 질문을 받게된다. "아 맞다! 말씀드린다는걸 깜빡했어요 죄송해요 ㅠㅠ" 라는 대답으로 끝이나는데...
나처럼 기억력이 안좋은 사람에게는 릴리즈 노트가 자동으로 작성되고 + 슬랙 채널에도 자동으로 메세지가 전송된다면 죄송하다는 말을 덜 할 수 있지 않을까 하는 생각이 들었다.😇
그리고 최근에는 두 팀이 같은 브랜드 작업을 동시에 진행하고 있어서, 다른 사람이 이미 웹 배포를 돌리고 있는지 아니면 돌릴 예정으로 dev, stage를 테스트하고 있진 않은지 미리 채널 알림을 통해 알려주면 좋을 것 같다는 생각이 들었다.
동시에 릴리즈 노트가 자동으로 생성되면 따로 우리가 노션에 히스토리 관리를 하지 않아도 누가 어떤 작업을 해서 메인에 머지를 진행했고 배포가 나갔는지 한 눈에 알 수 있어서 좋을 것 같았다.
그리하여 시작된 액션 파일 작성하기...
사실 약 2주 전부터 틈날 때마다 시도해보고 있는데 잘 안풀려서 의욕이 사라질 뻔 했지만..
될 듯 안될 듯 애태우는 이 상황이 답답해서 끝까지 해내고 말겠다는 오기가 생겼다!!!!!
우선 액션 파일 자체를 처음부터 작성하기보다는, 똑똑한 나의 친구 GPT 에게 상황을 먼저 설명하고, 원하는 코드를 작성해달라고 해서 개선해 나가는 중...!
성공할 때까지 진척상황을 히스토리처럼 업데이트 해보려고 한다.
name: Draft New Release
on:
push:
tags:
- 'test-action'
jobs:
get-tag-commit:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Get Merged Commit SHA
id: get_commit
run: |
COMMIT_SHA=$(git rev-list -n 1 ${{ github.ref }})
echo "Merged Commit SHA: $COMMIT_SHA"
echo "::set-output name=commit_sha::$COMMIT_SHA"
- name: Get PR Number
id: get_pr
run: |
PR_NUMBER=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/commits/${{ steps.get_commit.outputs.commit_sha }}/pulls" \
| jq -r '.[0].number')
echo "PR Number: $PR_NUMBER"
echo "::set-output name=pr_number::$PR_NUMBER"
- name: Use PR Number
run: echo "PR Number is ${{ steps.get_pr.outputs.pr_number }}"
- name: Get PR Information
id: get_pr_info
run: |
PR_BODY=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/pulls/${{ steps.get_pr.outputs.pr_number }}" \
| jq -r '.body')
echo "PR Body: $PR_BODY"
echo "::set-output name=pr_body::$PR_BODY"
- name: Post Release
uses: ncipollo/release-action@v1
with:
body: ${{ steps.get_pr_info.outputs.pr_body }}
::set-output
문법은 deprecated 되어서 사용하지 말라는 경고가 뜨지만, GPT는 최근의 문법을 알려주지 않기에 매번 수정하기 귀찮아서 우선 해당 문법을 사용하고 최종적으로 릴리즈 노트를 생성하는 액션을 성공시키면 수정할 계획...
그리고 위 액션의 결과...
릴리즈가 자동 생성이 되긴 하고, PR 바디도 잘 가져오긴 했는데...
가장 첫 번째 줄만 작성이 되었다