Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
b051e2a
RomRom-BE 버전 관리 : docs : v1.4.67 README 버전 정보 μ—…λ°μ΄νŠΈ [skip ci]
actions-user Apr 6, 2026
b70d2dd
배포_트리거λ₯Ό_mainμ—μ„œ_deploy_브랜치_push둜_λ³€κ²½ : chore : template μ½”λ“œ μ΅œμ‹ ν™” https://…
Cassiiopeia Apr 6, 2026
e5250a3
Merge branch 'main' of https://github.com/TEAM-ROMROM/RomRom-BE
Cassiiopeia Apr 6, 2026
3e2acd7
RomRom-BE 버전 정보 관리: chore: 버전 1.4.68 [skip ci]
actions-user Apr 6, 2026
d28c602
배포_트리거λ₯Ό_mainμ—μ„œ_deploy_브랜치_push둜_λ³€κ²½ : chore : template μ½”λ“œ μ΅œμ‹ ν™”2 https:/…
Cassiiopeia Apr 6, 2026
8d6026b
Merge branch 'main' of https://github.com/TEAM-ROMROM/RomRom-BE
Cassiiopeia Apr 6, 2026
b465e1c
RomRom-BE 버전 정보 관리: chore: 버전 1.4.69 [skip ci]
actions-user Apr 6, 2026
df5bef7
λ¬Όν’ˆ_μ‚­μ œ_μ‹œ_trade_request_history_FK_μ œμ•½μ‘°κ±΄_μœ„λ°˜μœΌλ‘œ_500_μ—λŸ¬_λ°œμƒ : feat : Notific…
Chuseok22 Apr 6, 2026
3bd6904
λ¬Όν’ˆ_μ‚­μ œ_μ‹œ_trade_request_history_FK_μ œμ•½μ‘°κ±΄_μœ„λ°˜μœΌλ‘œ_500_μ—λŸ¬_λ°œμƒ : feat : κ΄€λ¦¬μž λ¬Όν’ˆ …
Chuseok22 Apr 6, 2026
e306d01
λ¬Όν’ˆ_μ‚­μ œ_μ‹œ_trade_request_history_FK_μ œμ•½μ‘°κ±΄_μœ„λ°˜μœΌλ‘œ_500_μ—λŸ¬_λ°œμƒ : feat : κ΄€λ¦¬μž λ¬Όν’ˆ …
Chuseok22 Apr 6, 2026
2374e90
λ¬Όν’ˆ_μ‚­μ œ_μ‹œ_trade_request_history_FK_μ œμ•½μ‘°κ±΄_μœ„λ°˜μœΌλ‘œ_500_μ—λŸ¬_λ°œμƒ : feat : κ΄€λ¦¬μž λ¬Όν’ˆ …
Chuseok22 Apr 6, 2026
af4ccb2
λ¬Όν’ˆ_μ‚­μ œ_μ‹œ_trade_request_history_FK_μ œμ•½μ‘°κ±΄_μœ„λ°˜μœΌλ‘œ_500_μ—λŸ¬_λ°œμƒ : feat : gitigno…
Chuseok22 Apr 6, 2026
2fdec8c
Update version.yml
Chuseok22 Apr 6, 2026
1eb9941
embedding_μ €μž₯_μ‹œ_unique_constraint_μœ„λ°˜_λ°œμƒ : feat : deleteByOriginalIdAnd…
Chuseok22 Apr 6, 2026
970267d
embedding_μ €μž₯_μ‹œ_unique_constraint_μœ„λ°˜_λ°œμƒ : feat : κΈ°μ‘΄ item μž„λ² λ”© μ‚­μ œ λŒ€μ‹  upd…
Chuseok22 Apr 6, 2026
28c0329
Merge pull request #632 from TEAM-ROMROM/20260406_#630_embedding_μ €μž₯_μ‹œβ€¦
Chuseok22 Apr 6, 2026
e97cdf2
RomRom-BE 버전 정보 관리: chore: 버전 1.5.70 [skip ci]
actions-user Apr 6, 2026
74274e3
chore: update version to 1.6.0
Chuseok22 Apr 6, 2026
20efa50
feat : μ±„νŒ…λ°© μ‘°νšŒμ‹œ myItemImageUrl μΆ”κ°€
discipline24 Apr 6, 2026
28025b5
RomRom-BE 버전 정보 관리: chore: 버전 1.6.1 [skip ci]
actions-user Apr 6, 2026
ff03695
RomRom-BE 버전 관리 : docs : v1.6.1 릴리즈 λ¬Έμ„œ μ—…λ°μ΄νŠΈ (PR #633)
actions-user Apr 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
432 changes: 270 additions & 162 deletions .github/scripts/changelog_manager.py

Large diffs are not rendered by default.

378 changes: 249 additions & 129 deletions .github/scripts/version_manager.sh

Large diffs are not rendered by default.

604 changes: 337 additions & 267 deletions .github/workflows/PROJECT-AUTO-CHANGELOG-CONTROL.yaml

Large diffs are not rendered by default.

9 changes: 5 additions & 4 deletions .github/workflows/PROJECT-COMMON-QA-ISSUE-CREATION-BOT.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# ===================================================================
# PROJECT-COMMON-QA-ISSUE-CREATION-BOT.yaml
# μžλ™ QA 이슈 생성 μ›Œν¬ν”Œλ‘œμš°
# ===================================================================
#
# 이 μ›Œν¬ν”Œλ‘œμš°λŠ” GitHub 이슈/PR λŒ“κΈ€μ—μ„œ @suh-lab λ©˜μ…˜μ„ κ°μ§€ν•˜μ—¬
# QA(μ‹œν—˜μš”μ²­) 이슈λ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•©λ‹ˆλ‹€.
#
# ===================================================================
# μž‘λ™ 방식:
# 1. 이슈 λ˜λŠ” PR λŒ“κΈ€μ—μ„œ "@suh-lab" + "create" + "qa" 감지 (μˆœμ„œ 무관)
# 2. λŒ“κΈ€μ— πŸ‘€ λ¦¬μ•‘μ…˜ μΆ”κ°€ (확인 ν‘œμ‹œ)
Expand All @@ -31,7 +33,6 @@
#
# 트리거 방법:
# 이슈/PR λŒ“κΈ€μ— "@suh-lab create qa" λ˜λŠ” "@suh-lab qa create" μž…λ ₯
#
# ===================================================================

name: PROJECT-CREATE-QA-ISSUE
Expand All @@ -47,7 +48,7 @@ env:
# QA 이슈 κΈ°λ³Έ λ‹΄λ‹Ήμž μ„€μ •
# - 'default': λŒ“κΈ€ μž‘μ„±μžκ°€ λ‹΄λ‹Ήμžλ‘œ 지정됨
# - GitHub ID (예: 'Cassiiopeia'): ν•΄λ‹Ή μ‚¬μš©μžκ°€ λ‹΄λ‹Ήμžλ‘œ 지정됨
DEFAULT_QA_ASSIGNEE: 'Cassiiopeia'
DEFAULT_QA_ASSIGNEE: 'Chuseok22'

jobs:
create-qa:
Expand Down Expand Up @@ -199,7 +200,7 @@ jobs:
repo: context.repo.repo,
title: qaTitle,
body: qaBody,
labels: ['μž‘μ—… μ „'],
labels: ['μž‘μ—…μ „'],
assignees: [assignee]
});

Expand Down Expand Up @@ -253,4 +254,4 @@ jobs:
issue_number: issueOrPrNumber,
body: `❌ QA 이슈 생성 쀑 였λ₯˜κ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€.\n\n\`\`\`\n${error.message}\n\`\`\``
});
}
}
2 changes: 1 addition & 1 deletion .github/workflows/PROJECT-COMMON-SYNC-ISSUE-LABELS.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
label-sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Sync labels from config
uses: crazy-max/ghaction-github-labeler@v5
with:
Expand Down
171 changes: 140 additions & 31 deletions .github/workflows/PROJECT-README-VERSION-UPDATE.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# ===================================================================
# PROJECT-COMMON-README-VERSION-UPDATE.yaml
# README 파일 버전 μžλ™ μ—…λ°μ΄νŠΈ μ›Œν¬ν”Œλ‘œμš°
# ===================================================================
#
# 이 μ›Œν¬ν”Œλ‘œμš°λŠ” deploy 브랜치둜 ν‘Έμ‹œκ°€ λ°œμƒν•  λ•Œ README.md 파일의
# 버전 정보λ₯Ό version_manager.shλ₯Ό 톡해 가져와 μžλ™μœΌλ‘œ μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€.
#
# ===================================================================
# μž‘λ™ 방식:
# 1. deploy 브랜치 ν‘Έμ‹œ μ‹œ 트리거
# 2. version_manager.shλ₯Ό 톡해 μ΅œμ‹  버전 정보 μΆ”μΆœ
Expand All @@ -24,13 +26,17 @@
# - λŒ€μ†Œλ¬Έμž ꡬ뢄 μ—†μŒ
# - 콜둠(:) μ•žλ’€ 곡백 자유둭게 ν—ˆμš©
# - "version", "버전", "μ΅œμ‹ ", "current", "recent" λ“±μ˜ ν‚€μ›Œλ“œ 포함 μ‹œ μžλ™ 인식
# - 주석 <!-- μˆ˜μ •ν•˜μ§€λ§ˆμ„Έμš” μžλ™μœΌλ‘œ 동기화 λ©λ‹ˆλ‹€ -->λŠ” μžλ™μœΌλ‘œ μΆ”κ°€λ©λ‹ˆλ‹€.
# - 주석 <!-- AUTO-VERSION-SECTION: DO NOT EDIT MANUALLY -->κ°€ μžλ™μœΌλ‘œ μΆ”κ°€λ©λ‹ˆλ‹€.
#
# ❌ μ§€μ›λ˜μ§€ μ•ŠλŠ” ν˜•μ‹ (μ—λŸ¬ λ°œμƒ):
# - ## μ΅œμ‹  버전: v1.0.0** (λ§ˆν¬λ‹€μš΄ λ³Όλ“œ 문자 μ‚¬μš© κΈˆμ§€)
# - ## μ΅œμ‹  버전 v1.0.0 (콜둠 λˆ„λ½)
# - μ •κ·œν‘œν˜„μ‹ 특수문자(*, [, ], ^, $) ν¬ν•¨λœ 버전 ν‘œκΈ°
#
# πŸ”§ ν™˜κ²½λ³€μˆ˜ μ„€μ •:
# - SHOW_DATE: 버전에 λ‚ μ§œ ν‘œμ‹œ μ—¬λΆ€ (true/false, κΈ°λ³Έκ°’: true)
# * true: v1.0.0 (2025-08-16) ν˜•μ‹
# * false: v1.0.0 ν˜•μ‹
#
# ===================================================================

name: README VERSION UPDATE
Expand All @@ -54,11 +60,11 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: μ €μž₯μ†Œ 체크아웃
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
fetch-depth: 0
ref: main
ref: ${{ github.event.repository.default_branch || 'main' }}

- name: Git μ„€μ •
run: |
Expand Down Expand Up @@ -86,7 +92,44 @@ jobs:
LATEST_VERSION="${{ steps.version_info.outputs.latest_version }}"
RELEASE_DATE="${{ steps.version_info.outputs.release_date }}"
SHOW_DATE="${{ env.SHOW_DATE }}"


# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# μ—λŸ¬ λ©”μ‹œμ§€ 좜λ ₯ ν•¨μˆ˜
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
print_error_message() {
local error_type="$1"
local version_line="$2"
local header_part="$3"
local version_text="$4"

echo ""
echo "❌ README.md 버전 μ—…λ°μ΄νŠΈ μ‹€νŒ¨"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "πŸ” μ—λŸ¬ μœ ν˜•: $error_type"
echo ""
echo "πŸ“‹ 진단 정보:"
echo " β€’ ν˜„μž¬ 버전 라인: $version_line"
echo " β€’ μΆ”μΆœλœ 헀더: $header_part"
echo " β€’ μƒˆ 버전 ν…μŠ€νŠΈ: $version_text"
echo ""
echo "πŸ’‘ ν•΄κ²° 방법:"
echo " README.md의 버전 ν‘œκΈ°κ°€ μ•„λž˜ ν˜•μ‹ 쀑 ν•˜λ‚˜μ™€ μΌμΉ˜ν•˜λŠ”μ§€ ν™•μΈν•˜μ„Έμš”:"
echo ""
echo " βœ… μ§€μ›λ˜λŠ” ν˜•μ‹ μ˜ˆμ‹œ:"
echo " β€’ ## μ΅œμ‹  버전 : v1.0.0 (2025-08-15)"
echo " β€’ ## μ΅œμ‹ λ²„μ „ : v1.0.0"
echo " β€’ ## Version : v1.0.0"
echo " β€’ ## Current Version : v1.0.0 (2025-08-15)"
echo ""
echo " ⚠️ μ£Όμ˜μ‚¬ν•­:"
echo " β€’ λ§ˆν¬λ‹€μš΄ λ³Όλ“œ(**) 문자 μ‚¬μš© κΈˆμ§€"
echo " β€’ μ •κ·œν‘œν˜„μ‹ 특수문자(*, [, ], ^, $) μ‚¬μš© κΈˆμ§€"
echo " β€’ 콜둠(:) 뒀에 버전 정보가 λ°”λ‘œ 와야 ν•©λ‹ˆλ‹€"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
}

# λ‚ μ§œ ν‘œμ‹œ 여뢀에 따라 버전 ν˜•μ‹ κ²°μ •
if [ "$SHOW_DATE" = "true" ]; then
VERSION_TEXT="v${LATEST_VERSION} (${RELEASE_DATE})"
Expand All @@ -95,7 +138,7 @@ jobs:
VERSION_TEXT="v${LATEST_VERSION}"
echo "πŸ“‹ λ²„μ „λ§Œ ν‘œμ‹œ ν˜•μ‹: $VERSION_TEXT"
fi

# λ‹€μ–‘ν•œ 버전 ν‘œκΈ° νŒ¨ν„΄μ„ μ°ΎκΈ° μœ„ν•œ μ •κ·œν‘œν˜„μ‹
# λŒ€μ†Œλ¬Έμž λ¬΄μ‹œ, 곡백 μœ μ—°ν•˜κ²Œ 처리
VERSION_PATTERNS=(
Expand All @@ -107,11 +150,11 @@ jobs:
"^##[[:space:]]*버전[[:space:]]*:"
"^##[[:space:]]*[Ll]atest[[:space:]]*[Vv]ersion[[:space:]]*:"
)

# 버전 라인 μ°ΎκΈ°
VERSION_LINE=""
PATTERN_FOUND=""

for pattern in "${VERSION_PATTERNS[@]}"; do
if grep -qi "$pattern" README.md; then
VERSION_LINE=$(grep -i "$pattern" README.md | head -n 1)
Expand All @@ -120,63 +163,129 @@ jobs:
break
fi
done

# 버전 라인이 μ—†μœΌλ©΄ κΈ°λ³Έ ν˜•μ‹μœΌλ‘œ μΆ”κ°€
if [ -z "$VERSION_LINE" ]; then
echo "πŸ“ 버전 정보가 μ—†μ–΄ μƒˆλ‘œ μΆ”κ°€ν•©λ‹ˆλ‹€"

# 파일 맨 μ•žμ— 제λͺ©μ΄ μžˆλŠ”μ§€ 확인 ν›„ κ·Έ λ‹€μŒμ— μΆ”κ°€
if grep -q "^# " README.md; then
# 첫 번째 제λͺ© λ‹€μŒμ— μΆ”κ°€
sed -i '/^# /a\\n<!-- μˆ˜μ •ν•˜μ§€λ§ˆμ„Έμš” μžλ™μœΌλ‘œ 동기화 λ©λ‹ˆλ‹€ -->\n## μ΅œμ‹  버전 : '"$VERSION_TEXT" README.md
sed -i '/^# /a\\n<!-- AUTO-VERSION-SECTION: DO NOT EDIT MANUALLY -->\n## μ΅œμ‹  버전 : '"$VERSION_TEXT" README.md
else
# 파일 맨 μ•žμ— μΆ”κ°€
sed -i '1i\<!-- μˆ˜μ •ν•˜μ§€λ§ˆμ„Έμš” μžλ™μœΌλ‘œ 동기화 λ©λ‹ˆλ‹€ -->\n## μ΅œμ‹  버전 : '"$VERSION_TEXT"'\n' README.md
sed -i '1i\<!-- AUTO-VERSION-SECTION: DO NOT EDIT MANUALLY -->\n## μ΅œμ‹  버전 : '"$VERSION_TEXT"'\n' README.md
fi
echo "βœ… κΈ°λ³Έ 버전 정보 μΆ”κ°€ μ™„λ£Œ: $VERSION_TEXT"
else
# κΈ°μ‘΄ 버전 라인 μ—…λ°μ΄νŠΈ


# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 버전 라인 ν˜•μ‹ 검증 및 κ²½κ³ 
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
if [[ "$VERSION_LINE" =~ \*\* ]]; then
echo ""
echo "⚠️ κ²½κ³ : 버전 라인에 λ§ˆν¬λ‹€μš΄ λ³Όλ“œ(**) λ¬Έμžκ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€"
echo " ν˜„μž¬ 버전 라인: $VERSION_LINE"
echo " 이둜 인해 버전 μ—…λ°μ΄νŠΈκ°€ μ‹€νŒ¨ν•  수 μžˆμŠ΅λ‹ˆλ‹€"
echo ""
fi

# HTML 주석이 ν•΄λ‹Ή 라인 μœ„μ— μžˆλŠ”μ§€ 확인
LINE_NUMBER=$(grep -n -i "$PATTERN_FOUND" README.md | head -n 1 | cut -d: -f1)
PREV_LINE_NUMBER=$((LINE_NUMBER - 1))

if [ $PREV_LINE_NUMBER -gt 0 ]; then
PREV_LINE=$(sed -n "${PREV_LINE_NUMBER}p" README.md)
if [[ "$PREV_LINE" != *"μˆ˜μ •ν•˜μ§€λ§ˆμ„Έμš” μžλ™μœΌλ‘œ 동기화 λ©λ‹ˆλ‹€"* ]]; then
if [[ "$PREV_LINE" != *"AUTO-VERSION-SECTION"* ]]; then
# 주석이 μ—†μœΌλ©΄ 버전 라인 μœ„μ— μΆ”κ°€
sed -i "${PREV_LINE_NUMBER}a\\<!-- μˆ˜μ •ν•˜μ§€λ§ˆμ„Έμš” μžλ™μœΌλ‘œ 동기화 λ©λ‹ˆλ‹€ -->" README.md
sed -i "${PREV_LINE_NUMBER}a\\<!-- AUTO-VERSION-SECTION: DO NOT EDIT MANUALLY -->" README.md
echo "βœ… μžλ™ μ—…λ°μ΄νŠΈ 주석 μΆ”κ°€ μ™„λ£Œ"
# 주석 μΆ”κ°€λ‘œ 라인 λ²ˆν˜Έκ°€ 변경됨
LINE_NUMBER=$((LINE_NUMBER + 1))
fi
else
# 첫 번째 라인이면 κ·Έ μœ„μ— μΆ”κ°€
sed -i '1i\<!-- μˆ˜μ •ν•˜μ§€λ§ˆμ„Έμš” μžλ™μœΌλ‘œ 동기화 λ©λ‹ˆλ‹€ -->' README.md
sed -i '1i\<!-- AUTO-VERSION-SECTION: DO NOT EDIT MANUALLY -->' README.md
echo "βœ… μžλ™ μ—…λ°μ΄νŠΈ 주석 μΆ”κ°€ μ™„λ£Œ"
# 주석 μΆ”κ°€λ‘œ 라인 λ²ˆν˜Έκ°€ 변경됨
LINE_NUMBER=$((LINE_NUMBER + 1))
fi

# μ›λž˜ νŒ¨ν„΄μ˜ ν˜•μ‹μ„ μœ μ§€ν•˜λ©΄μ„œ 버전 μ •λ³΄λ§Œ μ—…λ°μ΄νŠΈ
# κΈ°μ‘΄ λΌμΈμ—μ„œ 헀더 λΆ€λΆ„(## ... :)을 μΆ”μΆœν•˜κ³  μƒˆ 버전 μ •λ³΄λ‘œ ꡐ체
HEADER_PART=$(echo "$VERSION_LINE" | sed 's/v[0-9].*//' | sed 's/[0-9].*//')

# κΈ°μ‘΄ 라인을 μƒˆ 버전 μ •λ³΄λ‘œ ꡐ체
sed -i "s|^${VERSION_LINE}.*|${HEADER_PART}${VERSION_TEXT}|" README.md

# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 헀더 λΆ€λΆ„ μΆ”μΆœ (μ½œλ‘ κΉŒμ§€λ§Œ μΆ”μΆœν•˜μ—¬ μ•ˆμ „ν•˜κ²Œ 처리)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HEADER_PART=$(echo "$VERSION_LINE" | sed 's/\(.*:\).*/\1 /')

# 헀더 μΆ”μΆœ μ‹€νŒ¨ 검증
if [ -z "$HEADER_PART" ] || [[ "$HEADER_PART" == "$VERSION_LINE" ]]; then
print_error_message "헀더 μΆ”μΆœ μ‹€νŒ¨ - 콜둠(:)을 찾을 수 μ—†μŠ΅λ‹ˆλ‹€" "$VERSION_LINE" "$HEADER_PART" "$VERSION_TEXT"
exit 1
fi

# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 라인 번호 기반으둜 직접 ꡐ체 (μ •κ·œν‘œν˜„μ‹ 특수문자 문제 νšŒν”Ό)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NEW_LINE="${HEADER_PART}${VERSION_TEXT}"

if ! sed -i "${LINE_NUMBER}s|.*|${NEW_LINE}|" README.md 2>/tmp/sed_error.log; then
SED_ERROR=$(cat /tmp/sed_error.log 2>/dev/null || echo "μ•Œ 수 μ—†λŠ” sed 였λ₯˜")
print_error_message "sed λͺ…λ Ήμ–΄ μ‹€ν–‰ μ‹€νŒ¨ - $SED_ERROR" "$VERSION_LINE" "$HEADER_PART" "$VERSION_TEXT"
exit 1
fi

# λ³€κ²½ κ²°κ³Ό 검증
UPDATED_LINE=$(sed -n "${LINE_NUMBER}p" README.md)
if [[ "$UPDATED_LINE" != *"$VERSION_TEXT"* ]]; then
print_error_message "버전 정보 ꡐ체 검증 μ‹€νŒ¨" "$VERSION_LINE" "$HEADER_PART" "$VERSION_TEXT"
echo " β€’ μ—…λ°μ΄νŠΈλœ 라인: $UPDATED_LINE"
exit 1
fi

echo "βœ… 버전 정보 μ—…λ°μ΄νŠΈ μ™„λ£Œ: $VERSION_TEXT"
fi

- name: 변경사항 컀밋 및 ν‘Έμ‹œ
run: |
DEFAULT_BRANCH="${{ github.event.repository.default_branch || 'main' }}"
git add README.md

if git diff --staged --quiet; then
echo "πŸ“ README.md에 변경사항이 μ—†μŠ΅λ‹ˆλ‹€"
else
REPO_NAME=$(basename "${{ github.repository }}")
VERSION="${{ steps.version_info.outputs.latest_version }}"

git commit -m "$REPO_NAME 버전 관리 : docs : v$VERSION README 버전 정보 μ—…λ°μ΄νŠΈ [skip ci]"

# main 브랜치둜만 ν‘Έμ‹œ
git push origin HEAD:main

echo "βœ… README.md 버전 정보 μ—…λ°μ΄νŠΈ μ™„λ£Œ"

# Race Condition λ°©μ§€: pull-rebase ν›„ push (μ΅œλŒ€ 3회 μž¬μ‹œλ„)
MAX_RETRIES=3
RETRY_COUNT=0
PUSH_SUCCESS=false

while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
RETRY_COUNT=$((RETRY_COUNT + 1))
echo "πŸ”„ Push μ‹œλ„ $RETRY_COUNT/$MAX_RETRIES..."

if git push origin HEAD:$DEFAULT_BRANCH; then
PUSH_SUCCESS=true
echo "βœ… README.md 버전 정보 μ—…λ°μ΄νŠΈ μ™„λ£Œ"
break
else
echo "⚠️ Push μ‹€νŒ¨, remote 변경사항 동기화 쀑..."

if git pull --rebase origin $DEFAULT_BRANCH; then
echo "βœ… Rebase 성곡, λ‹€μ‹œ push μ‹œλ„..."
else
echo "❌ Rebase μ‹€νŒ¨, 좩돌 ν•΄κ²° ν•„μš”"
git rebase --abort 2>/dev/null || true
exit 1
fi
fi
done

if [ "$PUSH_SUCCESS" = false ]; then
echo "❌ $MAX_RETRIES회 μ‹œλ„ 후에도 push μ‹€νŒ¨"
exit 1
fi
fi
Loading