Skip to content

Commit 9de7724

Browse files
๐ŸŽค [Release] v1.1.3
๐ŸŽค [Release] v1.1.3
2 parents a07132e + 6af9883 commit 9de7724

25 files changed

Lines changed: 463 additions & 121 deletions

โ€Ž.github/ISSUE_TEMPLATE/release.ymlโ€Ž

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,7 @@ body:
2424
description: ์ž‘์—…ํ— ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.
2525
value: |-
2626
- [ ] ํ˜„์žฌ ์˜คํ”ˆ๋œ PR ์ค‘ ๋ฆด๋ฆฌ์ฆˆํ•  ๋ฒ„์ „์— ์ถ”๊ฐ€ํ•  ๋ฒ”์œ„๋ฅผ ์ •ํ•˜๊ณ , ๋ฆด๋ฆฌ์ฆˆ ์ผ์ž ์ „์— develop์— ๋ชจ๋‘ ๋จธ์ง€ํ–ˆ๋‹ค.
27-
- [ ] ๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜ (ex> `release/v0.0.0`)๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค.
28-
- [ ] ์ƒ์„ฑํ•œ ๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜๋กœ ์ฒดํฌ์•„์›ƒ ํ•œ ํ›„ ์ปค๋ฐ‹, ํ‘ธ์‹œํ–ˆ๋‹ค.
29-
- [ ] Xcode ํ”„๋กœ์ ํŠธ์˜ ๋นŒ๋“œ ๋„˜๋ฒ„๋ฅผ 1 ์˜ฌ๋ ธ๋‹ค. (์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํ˜•์‹: `[Chore] release: ๋นŒ๋“œ ๋„˜๋ฒ„ ์ฆ๊ฐ€`)
30-
- [ ] CHAGNELOG.md์— ๋ฆด๋ฆฌ์ฆˆํ•  ๋ฒ„์ „์œผ๋กœ ์ƒˆ๋กœ์šด ์„น์…˜์„ ๋งŒ๋“ค๊ณ , Unrelease ์„น์…˜์˜ ์ž‘์—… ๋‚ด์šฉ์„ ์˜ฎ๊ฒจ ์—…๋ฐ์ดํŠธํ–ˆ๋‹ค. (์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํ˜•์‹: `[Docs] release: v0.0.0 CHAGNELOG.md`)
31-
- [ ] ๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜ (ex> `release/v0.0.0`)๋ฅผ main์— ๋ณ‘ํ•ฉํ•˜๋Š” PR์„ ์ƒ์„ฑํ–ˆ๋‹ค. (PR ์ œ๋ชฉ ํ˜•์‹: `[Release] v0.0.0`)
32-
- [ ] ๋ฆด๋ฆฌ์ฆˆ ๋ธŒ๋žœ์น˜๋ฅผ ๋‹ค์‹œ develop์œผ๋กœ ๋ณ‘ํ•ฉํ•˜๋Š” PR์„ ์ƒ์„ฑํ–ˆ๋‹ค. (PR ์ œ๋ชฉ ํ˜•์‹: `[Chore] Merge back v0.0.0`)
33-
- [ ] ๋‘ PR์„ ๋ณ‘ํ•ฉํ•œ ํ›„, ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ๋‹ค.
34-
- [ ] main ๋ธŒ๋žœ์น˜๋กœ ์ฒดํฌ์•„์›ƒํ•˜์—ฌ ํ˜„์žฌ ๋ฒ„์ „์œผ๋กœ ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค. (ํƒœ๊ทธ ํ˜•์‹: `v0.0.0`)
35-
- [ ] Xcode๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์—ด์–ด ๋ฐฐํฌํ–ˆ๋‹ค.
27+
- [ ] ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , `/start {v๋ฆด๋ฆฌ์ฆˆํ•  ๋ฒ„์ „}`๋ฅผ ์ฝ”๋ฉ˜ํŠธ์— ๋‹ฌ์•„ ๋ฆด๋ฆฌ์ฆˆ Workflow๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ–ˆ๋‹ค. `ex> /start v1.2.3`
3628
validations:
3729
required: true
3830
- type: input
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
name: Release
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
7+
jobs:
8+
release:
9+
if: |
10+
!github.event.issue.pull_request &&
11+
startsWith(github.event.issue.title, '๐ŸŽค [Release]') &&
12+
startsWith(github.event.comment.body, '/start') &&
13+
contains(fromJSON('["OWNER", "MEMBER", "COLLABORATOR"]'), github.event.comment.author_association)
14+
15+
runs-on: ubuntu-latest
16+
permissions:
17+
contents: write
18+
issues: write
19+
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
with:
24+
fetch-depth: 0
25+
26+
- name: Parse Version
27+
id: parse_version
28+
env:
29+
GH_TOKEN: ${{ github.token }}
30+
run: |
31+
# 1. ๋ฒ„์ „ ํŒŒ์‹ฑ
32+
RAW_VERSION=$(echo "${{ github.event.comment.body }}" | awk '{print $2}')
33+
34+
# 2. ๋ฒ„์ „ ๋ˆ„๋ฝ ์ฒดํฌ
35+
if [ -z "$RAW_VERSION" ]; then
36+
echo "VERSION_MISSING=true" >> $GITHUB_ENV
37+
exit 1
38+
fi
39+
40+
# 3. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์„ค์ •
41+
STRIPPED_VERSION=$(echo $RAW_VERSION | sed 's/^v//')
42+
echo "RAW_VERSION=$RAW_VERSION" >> $GITHUB_ENV
43+
echo "STRIPPED_VERSION=$STRIPPED_VERSION" >> $GITHUB_ENV
44+
45+
# 4. ์‹œ์ž‘ ์ฝ”๋ฉ˜ํŠธ ๋‚จ๊ธฐ๊ธฐ (๋ฒ„์ „์ด ์žˆ์„ ๋•Œ๋งŒ ์‹คํ–‰๋จ)
46+
gh issue comment ${{ github.event.issue.number }} --body "๐Ÿš€ **๋ฆด๋ฆฌ์ฆˆ ์ž‘์—…์ด ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ($RAW_VERSION)**"
47+
48+
- name: Git Config Setup
49+
run: |
50+
git config user.name "github-actions[bot]"
51+
git config user.email "github-actions[bot]@users.noreply.github.com"
52+
53+
- name: Process Release and Direct Merge
54+
env:
55+
GH_TOKEN: ${{ github.token }}
56+
run: |
57+
RAW_VER=${{ env.RAW_VERSION }}
58+
STRIP_VER=${{ env.STRIPPED_VERSION }}
59+
RELEASE_BRANCH="release/$RAW_VER"
60+
XCODE_PROJ_PATH="QueenCam/QueenCam.xcodeproj/project.pbxproj"
61+
TODAY=$(date +'%Y-%m-%d')
62+
REPO_URL="https://github.com/${{ github.repository }}"
63+
64+
# 1. ์ด์ „ ๋ฒ„์ „ ์ถ”์ถœ
65+
LAST_VERSION_STRIP=$(grep -oE '^## \[[0-9]+\.[0-9]+\.[0-9]+\]' CHANGELOG.md | head -n 1 | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
66+
LAST_VERSION_TAG="v$LAST_VERSION_STRIP"
67+
68+
git checkout develop
69+
git checkout -b $RELEASE_BRANCH
70+
71+
# 2. Xcode Version & Build ์—…๋ฐ์ดํŠธ
72+
sed -i "s/MARKETING_VERSION = .*/MARKETING_VERSION = $STRIP_VER;/g" $XCODE_PROJ_PATH
73+
OLD_BUILD_NUMBER=$(grep -m 1 "CURRENT_PROJECT_VERSION =" $XCODE_PROJ_PATH | sed -E 's/.*=[[:space:]]*([0-9]+);/\1/')
74+
NEW_BUILD_NUMBER=$((OLD_BUILD_NUMBER + 1))
75+
sed -i "s/CURRENT_PROJECT_VERSION = .*/CURRENT_PROJECT_VERSION = $NEW_BUILD_NUMBER;/g" $XCODE_PROJ_PATH
76+
77+
git add .
78+
git commit -m "[Chore] release: $RAW_VER ๋นŒ๋“œ ๋„˜๋ฒ„ ์ฆ๊ฐ€ ($NEW_BUILD_NUMBER)"
79+
80+
# 3. CHANGELOG ์—…๋ฐ์ดํŠธ ์‹œ์ž‘
81+
82+
# 3-1. ๊ธฐ์กด [Unreleased] ํ—ค๋”๋ฅผ ํ˜„์žฌ ๋ฒ„์ „์œผ๋กœ ๊ต์ฒด
83+
sed -i "s/.*## \[Unreleased\]/## [$STRIP_VER] - $TODAY/" CHANGELOG.md
84+
85+
# 3-2. ์ƒˆ๋กœ์šด [Unreleased] ํ…œํ”Œ๋ฆฟ ์‚ฝ์ž…
86+
printf "\n## [Unreleased]\n\n### Added\n\n### Changed\n\n### Deprecated\n\n### Removed\n\n### Fixed\n\n### Security\n" > unreleased_tmp.txt
87+
88+
# 'r' ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์ง€์ •ํ•œ ์œ„์น˜ '๋’ค'์— ํŒŒ์ผ ๋‚ด์šฉ์„ ์ฝ์–ด์˜จ๋‹ค
89+
sed -i "/๊ธฐ์ค€์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค\./r unreleased_tmp.txt" CHANGELOG.md
90+
rm unreleased_tmp.txt
91+
92+
# 3-3. ํ•˜๋‹จ ๋งํฌ ์„น์…˜ ์—…๋ฐ์ดํŠธ
93+
NEW_DIFF_LINK="[$STRIP_VER]: $REPO_URL/compare/$LAST_VERSION_TAG...$RAW_VER"
94+
NEW_UNRELEASED_LINK="[Unreleased]: $REPO_URL/compare/$RAW_VER...HEAD"
95+
96+
# ๊ธฐ์กด [Unreleased] ๋งํฌ ์‚ญ์ œ (์ค‘๋ณต ๋ฐฉ์ง€)
97+
sed -i "/^\[Unreleased\]:/d" CHANGELOG.md
98+
99+
# ๋งํฌ ์ถ”๊ฐ€
100+
sed -i "0,/^\[.*\]:/{s|^\[.*\]:|$NEW_DIFF_LINK\n&|}" CHANGELOG.md
101+
sed -i "0,/^\[.*\]:/{s|^\[.*\]:|$NEW_UNRELEASED_LINK\n&|}" CHANGELOG.md
102+
103+
git add CHANGELOG.md
104+
git commit -m "[Docs] release: $RAW_VER CHANGELOG.md"
105+
106+
# 4. ๋ธŒ๋žœ์น˜ ๋ณ‘ํ•ฉ ๋ฐ ํ‘ธ์‹œ
107+
git push origin $RELEASE_BRANCH
108+
git checkout main
109+
git merge --no-ff $RELEASE_BRANCH -m "Merge release branch $RELEASE_BRANCH into main"
110+
git tag -a "$RAW_VER" -m "Release $RAW_VER"
111+
git checkout develop
112+
git merge --no-ff $RELEASE_BRANCH -m "Merge release branch $RELEASE_BRANCH back to develop"
113+
114+
git push origin main develop --tags
115+
git branch -d $RELEASE_BRANCH
116+
117+
- name: Post Failure Comment
118+
if: failure()
119+
env:
120+
GH_TOKEN: ${{ github.token }}
121+
run: |
122+
if [ "${{ env.VERSION_MISSING }}" == "true" ]; then
123+
gh issue comment ${{ github.event.issue.number }} --body "โŒ **๋ฒ„์ „์„ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.** \`/start v1.2.3\` ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”."
124+
else
125+
gh issue comment ${{ github.event.issue.number }} --body "โŒ **๋ฆด๋ฆฌ์ฆˆ ์ž‘์—… ๋„์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. (${{ env.RAW_VERSION }})**
126+
127+
Actions ํƒญ์—์„œ ์ƒ์„ธ ๋กœ๊ทธ๋ฅผ ํ™•์ธํ•ด ์ฃผ์„ธ์š”."
128+
fi
129+
130+
- name: Post Success Comment
131+
if: success()
132+
env:
133+
GH_TOKEN: ${{ github.token }}
134+
run: |
135+
gh issue comment ${{ github.event.issue.number }} --body "โœ… **๋ฆด๋ฆฌ์ฆˆ ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! (${{ env.RAW_VERSION }})**
136+
137+
- **App Version:** ${{ env.STRIPPED_VERSION }}"

โ€ŽCHANGELOG.mdโ€Ž

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,25 @@
99

1010
### Added
1111

12+
### Changed
13+
14+
### Deprecated
15+
16+
### Removed
17+
18+
### Fixed
19+
20+
### Security
21+
22+
## [1.1.3] - 2025-12-29
23+
24+
### Added
25+
26+
- ์—ญํ•  ์„ ํƒ ์‹œ, ํ…์ŠคํŠธ ๋ ˆ์ด๋ธ”๋„ ์„ ํƒ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌํ˜„
1227

1328
### Changed
1429

30+
- ์‚ฌ์ง„ ํ™”์งˆ ๊ฐœ์„ 
1531

1632
### Deprecated
1733

@@ -20,7 +36,7 @@
2036

2137

2238
### Fixed
23-
39+
- ์—ญํ•  ๋ฐ”๊พธ๊ธฐ ์‹œ ํŽœ ๊ฐ€์ด๋“œ๋ผ์ธ ์ดˆ๊ธฐํ™” ์˜ค๋ฅ˜ ์ˆ˜์ •
2440

2541
### Security
2642

@@ -307,6 +323,8 @@
307323
- Wi-Fi Aware ์—ฐ๊ฒฐ ํ›„, ๋ผ์ด๋ธŒ ํฌํ†  ์ดฌ์˜ ์‹œ ์•ฑ์ด ํฌ๋ž˜์‹œ๋˜๋Š” ๋ฌธ์ œ
308324
- ๋ ˆํผ๋Ÿฐ์Šค ์‚ญ์ œ ํ›„ ์žฌ๋“ฑ๋ก์— ๊ด€ํ•œ ์ƒํƒœ ์ดˆ๊ธฐํ™” ๋ฌธ์ œ
309325

326+
[Unreleased]: https://github.com/DeveloperAcademy-POSTECH/2025-C6-A11-QueendomJaerim/compare/v1.1.3...HEAD
327+
[1.1.3]: https://github.com/DeveloperAcademy-POSTECH/2025-C6-A11-QueendomJaerim/compare/v1.1.2...v1.1.3
310328
[1.1.2]: https://github.com/DeveloperAcademy-POSTECH/2025-C6-A11-QueendomJaerim/compare/v1.1.1...v1.1.2
311329
[1.1.1]: https://github.com/DeveloperAcademy-POSTECH/2025-C6-A11-QueendomJaerim/compare/v1.1.0...v1.1.1
312330
[1.1.0]: https://github.com/DeveloperAcademy-POSTECH/2025-C6-A11-QueendomJaerim/compare/v1.0.2...v1.1.0
@@ -320,4 +338,3 @@
320338
[0.2.0]: https://github.com/DeveloperAcademy-POSTECH/2025-C6-A11-QueendomJaerim/compare/v0.1.0...v0.2.0
321339
[0.1.0]: https://github.com/DeveloperAcademy-POSTECH/2025-C6-A11-QueendomJaerim/compare/v0.0.1...v0.1.0
322340
[0.0.1]: https://github.com/DeveloperAcademy-POSTECH/2025-C6-A11-QueendomJaerim/releases/tag/v0.0.1
323-
[unreleased]: hhttps://github.com/DeveloperAcademy-POSTECH/2025-C6-A11-QueendomJaerim
Lines changed: 35 additions & 0 deletions
Loading

0 commit comments

Comments
ย (0)