Skip to content

Commit 469cb30

Browse files
committed
Chore: 통합 워크플로우 수정
1 parent f383003 commit 469cb30

File tree

1 file changed

+26
-10
lines changed

1 file changed

+26
-10
lines changed

.github/workflows/integration.yaml

+26-10
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,27 @@ jobs:
1515
- name: Get PR labels
1616
id: pr-labels
1717
run: |
18-
labels=$(gh pr view ${{ github.event.pull_request.number }} --json labels -q '.labels[].name' || echo "")
19-
echo "labels=$labels" >> $GITHUB_OUTPUT
18+
pr_number="${{ github.event.pull_request.number }}"
19+
labels_json=$(gh pr view $pr_number --json labels -q '.labels[].name')
20+
if [ -n "$labels_json" ]; then
21+
echo "has_maintenance=$(echo $labels_json | grep -q 'maintenance' && echo 'true' || echo 'false')" >> $GITHUB_OUTPUT
22+
else
23+
echo "has_maintenance=false" >> $GITHUB_OUTPUT
24+
fi
2025
env:
2126
GH_TOKEN: ${{ github.token }}
2227

2328
- name: Check for 1. missing end line breaks and 2. control characters in filenames and 3. filename rules
2429
run: |
30+
# 필요한 값들 미리 설정
31+
pr_author="${{ github.event.pull_request.user.login }}"
32+
pr_number="${{ github.event.pull_request.number }}"
33+
labels_json=$(gh pr view $pr_number --json labels -q '.labels[].name')
34+
has_maintenance=false
35+
if echo "$labels_json" | grep -q "maintenance"; then
36+
has_maintenance=true
37+
fi
38+
2539
# 따옴표를 제거하고 파일 목록 가져오기
2640
files=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} | tr -d '"')
2741
echo "변경된 파일 목록:"
@@ -71,16 +85,16 @@ jobs:
7185
done
7286
7387
# maintenance 라벨이 없는 경우에만 파일명 규칙 체크
74-
if [[ ! "${{ steps.pr-labels.outputs.labels }}" =~ "maintenance" ]]; then
88+
if [ "$has_maintenance" != "true" ]; then
7589
echo -e "\n## 파일명 규칙 위반" >> $GITHUB_STEP_SUMMARY
7690
for file in $files; do
7791
if [ -f "$file" ]; then
78-
filename=$(basename "$file" | tr -d '"')
79-
github_username="${{ github.event.pull_request.user.login }}"
80-
92+
# 파일명만 추출 (경로 제외)
93+
filename=$(basename "$file")
8194
# 파일명이 GitHub계정명인지 확인
82-
if [[ ! "$filename" =~ ^"$github_username" ]]; then
83-
echo "- $file (파일명은 '$github_username'로 해주셔야 합니다)" >> $GITHUB_STEP_SUMMARY
95+
shopt -s nocasematch
96+
if [[ ! "$filename" = "$pr_author"* ]]; then
97+
echo "- $file (파일명은 '$pr_author'형식으로 해주셔야 합니다)" >> $GITHUB_STEP_SUMMARY
8498
success=false
8599
fi
86100
fi
@@ -91,8 +105,10 @@ jobs:
91105
echo -e "\n:warning: 위 문제들을 해결해 주세요:" >> $GITHUB_STEP_SUMMARY
92106
echo "1. 파일 끝의 누락된 줄바꿈을 추가해 주세요." >> $GITHUB_STEP_SUMMARY
93107
echo "2. 파일명에서 제어문자를 제거해 주세요." >> $GITHUB_STEP_SUMMARY
94-
if [[ ! "${{ steps.pr-labels.outputs.labels }}" =~ "maintenance" ]]; then
95-
echo "3. 파일명은 반드시 'GitHub계정명'으로 해주셔야 합니다. (예: ${{ github.event.pull_request.user.login }}.ts)" >> $GITHUB_STEP_SUMMARY
108+
if [[ ! "$pr_labels" =~ "maintenance" ]]; then
109+
echo "3. 파일명은 반드시 'GitHub계정명'형식으로 해주셔야 합니다. (예: ${pr_author}.ts)" >> $GITHUB_STEP_SUMMARY
96110
fi
97111
exit 1
98112
fi
113+
env:
114+
GH_TOKEN: ${{ github.token }}

0 commit comments

Comments
 (0)