name: payple-renew # Payple 정기결제 자동 갱신 트리거. 매일 한 번 Supabase Edge Function `payple-renew`를 호출한다. # 예전 .github/workflows/payple-renew.yml은 GitHub 원격이 없어 한 번도 실행되지 않았다. # # 주의: # - Forgejo schedule은 기본 브랜치(main)에 이 파일이 있을 때만 등록된다. # - cron 시각은 Forgejo 서버 기준으로 해석된다. 서버가 UTC면 01:00 UTC = 10:00 KST. # # 필요한 시크릿: # SUPABASE_URL — https://.supabase.co (끝 슬래시 없이) # CRON_SECRET — Supabase Function 시크릿 CRON_SECRET 과 같은 값 on: schedule: - cron: "0 1 * * *" workflow_dispatch: jobs: renew: runs-on: linux-builder steps: - name: payple-renew Edge Function 호출 env: SUPABASE_URL: "${{ secrets.SUPABASE_URL }}" CRON_SECRET: "${{ secrets.CRON_SECRET }}" run: | set -eu if [ -z "${SUPABASE_URL:-}" ] || [ -z "${CRON_SECRET:-}" ]; then echo "SUPABASE_URL / CRON_SECRET 시크릿이 없습니다." >&2 exit 1 fi response=$(curl --silent --show-error --max-time 300 -w "\n%{http_code}" -X POST \ "${SUPABASE_URL%/}/functions/v1/payple-renew" \ -H "Authorization: Bearer ${CRON_SECRET}" \ -H "Content-Type: application/json") http_code=$(printf '%s\n' "$response" | tail -n 1) body=$(printf '%s\n' "$response" | sed '$d') echo "HTTP $http_code" printf '%s\n' "$body" | jq . 2>/dev/null || printf '%s\n' "$body" if [ "$http_code" -ge 400 ]; then echo "갱신 실패: HTTP $http_code" >&2 exit 1 fi