name: PR Deployment Status on: deployment_status: jobs: deployment-status: runs-on: ubuntu-latest if: github.event.deployment_status.state == 'success' || github.event.deployment_status.state == 'failure' steps: - name: Add deployment comment to PR uses: actions/github-script@v7 with: script: | const { deployment_status } = context.payload; const state = deployment_status.state; const targetUrl = deployment_status.target_url; const environment = deployment_status.deployment.environment; let emoji = state === 'success' ? '✅' : '❌'; let message = state === 'success' ? '성공' : '실패'; const comment = `## ${emoji} 배포 ${message} **환경**: \`${environment}\` **상태**: ${message} **URL**: ${targetUrl ? `[배포 확인하기](${targetUrl})` : '배포 URL 없음'} **시간**: ${new Date().toLocaleString('ko-KR', { timeZone: 'Asia/Seoul' })} ${state === 'success' ? '🎉 배포가 성공적으로 완료되었습니다! 위 링크에서 확인해보세요.' : '⚠️ 배포 중 문제가 발생했습니다. Vercel 대시보드에서 로그를 확인해주세요.'}`; // PR과 연관된 경우에만 코멘트 추가 if (context.payload.deployment_status.deployment.ref !== 'main') { const { data: prs } = await github.rest.pulls.list({ owner: context.repo.owner, repo: context.repo.repo, head: `${context.repo.owner}:${context.payload.deployment_status.deployment.ref}`, state: 'open' }); if (prs.length > 0) { await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, issue_number: prs[0].number, body: comment }); } }