-
-
Notifications
You must be signed in to change notification settings - Fork 335
116 lines (101 loc) ยท 5.02 KB
/
check-project.yaml
File metadata and controls
116 lines (101 loc) ยท 5.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
name: Check Project Week ๐๏ธ
on:
pull_request:
types: [opened, reopened, synchronize, edited, labeled, unlabeled]
workflow_dispatch: # ์๋ ์คํ
inputs:
pr_number:
description: 'PR ๋ฒํธ'
required: true
type: number
issue_comment: # PR ๋๊ธ๋ก ์ฌ์คํ
types: [created]
jobs:
check-project:
runs-on: ubuntu-latest
# issue_comment ์ด๋ฒคํธ๋ /check-week ๋ช
๋ น์ด๊ฐ ์์ ๋๋ง ์คํ
if: |
github.event_name != 'issue_comment' ||
(github.event.issue.pull_request && contains(github.event.comment.body, '/check-week'))
permissions:
contents: read
pull-requests: read
steps:
# PR ๋ฒํธ ๊ฒฐ์
- name: Determine PR number
id: pr-info
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
pr_number="${{ inputs.pr_number }}"
elif [ "${{ github.event_name }}" = "issue_comment" ]; then
pr_number="${{ github.event.issue.number }}"
else
pr_number="${{ github.event.pull_request.number }}"
fi
echo "pr_number=$pr_number" >> $GITHUB_OUTPUT
echo "๐ PR ๋ฒํธ: $pr_number"
# PR ๋ผ๋ฒจ ํ์ธ
- name: Get PR labels
id: pr-labels
run: |
pr_number="${{ steps.pr-info.outputs.pr_number }}"
repo="${{ github.repository }}"
echo "๐ PR ๋ผ๋ฒจ ์กฐํ ์ค..."
labels_json=$(gh pr view $pr_number --repo $repo --json labels -q '.labels[].name')
echo "ํ์ธ๋ ๋ผ๋ฒจ: $labels_json"
if [ -n "$labels_json" ]; then
has_maintenance=$(echo $labels_json | grep -q 'maintenance' && echo 'true' || echo 'false')
echo "maintenance ๋ผ๋ฒจ ํฌํจ ์ฌ๋ถ: $has_maintenance"
echo "has_maintenance=$has_maintenance" >> $GITHUB_OUTPUT
else
echo "maintenance ๋ผ๋ฒจ์ด ์๋ PR์
๋๋ค. Week ์ค์ ์ ๊ฒ์ฌํฉ๋๋ค."
echo "has_maintenance=false" >> $GITHUB_OUTPUT
fi
env:
GH_TOKEN: ${{ github.token }}
# Week ์ค์ ํ์ธ (Cloudflare Worker ํธ์ถ)
- name: Check Week setting in project
if: ${{ steps.pr-labels.outputs.has_maintenance != 'true' }}
run: |
echo "๐ Week ์ค์ ๊ฒ์ฌ ์์"
pr_number="${{ steps.pr-info.outputs.pr_number }}"
repo_owner="${{ github.repository_owner }}"
repo_name="${{ github.event.repository.name }}"
WORKER_URL="https://dalestudy.daleseo.workers.dev"
echo "๐ Cloudflare Worker๋ฅผ ํตํด ํ๋ก์ ํธ ์ ๋ณด ์กฐํ ์ค..."
response=$(curl -s -X POST "$WORKER_URL" \
-H "Content-Type: application/json" \
-d "{\"pr_number\": $pr_number, \"repo_owner\": \"$repo_owner\", \"repo_name\": \"$repo_name\"}")
echo "์๋ต: $response"
# ์๋ฌ ์ฒดํฌ
if echo "$response" | jq -e '.error' > /dev/null; then
error_msg=$(echo "$response" | jq -r '.error')
echo "โ ๏ธ Worker ์๋ฌ: $error_msg"
echo "## โ Week ์ค์ ๊ฒ์ฆ ์คํจ" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "ํ๋ก์ ํธ ์ ๋ณด๋ฅผ ์กฐํํ ์ ์์ต๋๋ค: $error_msg" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "๐ [๋ต์ ์ ์ถ ๊ฐ์ด๋ ์ฐธ๊ณ ](https://github.com/DaleStudy/leetcode-study/wiki/%EB%8B%B5%EC%95%88-%EC%A0%9C%EC%B6%9C-%EA%B0%80%EC%9D%B4%EB%93%9C#pr-%EC%9E%91%EC%84%B1%EB%B2%95)" >> $GITHUB_STEP_SUMMARY
exit 1
fi
# Week ๊ฐ ์ถ์ถ
week_value=$(echo "$response" | jq -r '.week')
project_found=$(echo "$response" | jq -r '.project_found')
echo "์ถ์ถ๋ Week ๊ฐ: '$week_value'"
echo "ํ๋ก์ ํธ ๋ฐ๊ฒฌ ์ฌ๋ถ: $project_found"
if [ "$week_value" = "null" ] || [ -z "$week_value" ]; then
echo "## โ Week ์ค์ ๊ฒ์ฆ ์คํจ" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "โ ๏ธ **PR์ Week ์ค์ ์ด ๋๋ฝ๋์์ต๋๋ค!**" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### ์ค์ ๋ฐฉ๋ฒ" >> $GITHUB_STEP_SUMMARY
echo "1. PR ์ฐ์ธก์ \`Projects\` ์น์
์์ \`๋ฆฌํธ์ฝ๋ ์คํฐ๋\` ์ ๋๋กญ๋ค์ด(โผ) ํด๋ฆญ" >> $GITHUB_STEP_SUMMARY
echo "2. ํ์ฌ ์ฃผ์ฐจ๋ฅผ ์ ํํด์ฃผ์ธ์ (์: \`Week 14(current)\` ๋๋ \`Week 14\`)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "๐ [์์ธํ ๊ฐ์ด๋ ๋ณด๊ธฐ](https://github.com/DaleStudy/leetcode-study/wiki/%EB%8B%B5%EC%95%88-%EC%A0%9C%EC%B6%9C-%EA%B0%80%EC%9D%B4%EB%93%9C#pr-%EC%9E%91%EC%84%B1%EB%B2%95)" >> $GITHUB_STEP_SUMMARY
exit 1
fi
echo "## โ
Week ์ค์ ๊ฒ์ฆ ์ฑ๊ณต" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "Week ์ค์ : **$week_value**" >> $GITHUB_STEP_SUMMARY
echo "โ
Week ์ค์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๋์ด ์์ต๋๋ค!"