Skip to content

Commit 6cc1c90

Browse files
authored
Merge pull request #198 from vue-pivottable/fix/align-release-workflows
fix: 베타와 프로덕션 릴리스 워크플로우 통일
2 parents 374a940 + dae29ab commit 6cc1c90

File tree

3 files changed

+52
-17
lines changed

3 files changed

+52
-17
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
---
2+
"vue-pivottable": patch
3+
---
4+
5+
fix: 베타와 프로덕션 릴리스 워크플로우 개선
6+
7+
- 베타와 프로덕션 모두 동일한 release-packages.cjs 스크립트 사용
8+
- changeset이 적용된 패키지만 베타 버전 생성하도록 수정
9+
- 프로덕션 릴리스 시 기존 릴리스 브랜치 삭제 후 재생성
10+
- 프로덕션 배포가 릴리스 브랜치에서 실행되도록 수정

.github/workflows/release-develop.yml

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,29 +49,44 @@ jobs:
4949
id: version
5050
if: steps.changesets-check.outputs.has_changesets == 'true'
5151
run: |
52+
# Store original versions before changeset
53+
ORIGINAL_MAIN=$(node -p "require('./package.json').version" | sed 's/-beta\.[0-9]*//g')
54+
declare -A ORIGINAL_VERSIONS
55+
for pkg in packages/*/; do
56+
if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
57+
PKG_NAME=$(basename "$pkg")
58+
ORIGINAL_VERSIONS[$PKG_NAME]=$(cd "$pkg" && node -p "require('./package.json').version" | sed 's/-beta\.[0-9]*//g')
59+
fi
60+
done
61+
5262
# Apply changesets and consume them
5363
pnpm changeset version
5464
55-
# Update to beta versions
56-
MAIN_VERSION=$(node -p "require('./package.json').version")
65+
# Check for version changes and update to beta
5766
TIMESTAMP=$(date +%s)
67+
CHANGED_PACKAGES=""
5868
59-
# Remove ALL existing beta suffixes if present and add new one
60-
CLEAN_VERSION=$(echo "$MAIN_VERSION" | sed 's/-beta\.[0-9]*//g')
61-
BETA_VERSION="${CLEAN_VERSION}-beta.${TIMESTAMP}"
62-
63-
# Update main package
64-
npm version $BETA_VERSION --no-git-tag-version
69+
# Check main package
70+
NEW_MAIN=$(node -p "require('./package.json').version")
71+
if [ "$ORIGINAL_MAIN" != "$NEW_MAIN" ]; then
72+
BETA_VERSION="${NEW_MAIN}-beta.${TIMESTAMP}"
73+
npm version $BETA_VERSION --no-git-tag-version
74+
CHANGED_PACKAGES="vue-pivottable"
75+
fi
6576
66-
# Update sub-packages
77+
# Check sub-packages
6778
for pkg in packages/*/; do
6879
if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
6980
cd "$pkg"
70-
PKG_VERSION=$(node -p "require('./package.json').version")
71-
# Remove ALL existing beta suffixes if present and add new one
72-
PKG_CLEAN=$(echo "$PKG_VERSION" | sed 's/-beta\.[0-9]*//g')
73-
PKG_BETA="${PKG_CLEAN}-beta.${TIMESTAMP}"
74-
npm version $PKG_BETA --no-git-tag-version
81+
PKG_NAME=$(basename "$pkg")
82+
NEW_VERSION=$(node -p "require('./package.json').version")
83+
84+
# Only add beta if version changed
85+
if [ "${ORIGINAL_VERSIONS[$PKG_NAME]}" != "$NEW_VERSION" ]; then
86+
PKG_BETA="${NEW_VERSION}-beta.${TIMESTAMP}"
87+
npm version $PKG_BETA --no-git-tag-version
88+
CHANGED_PACKAGES="$CHANGED_PACKAGES $PKG_NAME"
89+
fi
7590
cd -
7691
fi
7792
done
@@ -80,10 +95,17 @@ jobs:
8095
git config user.name "github-actions[bot]"
8196
git config user.email "github-actions[bot]@users.noreply.github.com"
8297
git add -A
83-
git commit -m "chore: prepare beta release"
98+
git commit -m "chore: prepare beta release
99+
100+
Changed packages: $CHANGED_PACKAGES"
84101
git push origin develop
85102
86-
echo "version=$BETA_VERSION" >> $GITHUB_OUTPUT
103+
# Use main package version for output (if changed) or first changed package
104+
if [ "$ORIGINAL_MAIN" != "$NEW_MAIN" ]; then
105+
echo "version=${NEW_MAIN}-beta.${TIMESTAMP}" >> $GITHUB_OUTPUT
106+
else
107+
echo "version=beta.${TIMESTAMP}" >> $GITHUB_OUTPUT
108+
fi
87109
88110
- name: Run quality checks
89111
if: steps.changesets-check.outputs.has_changesets == 'true'
@@ -130,7 +152,7 @@ jobs:
130152
if: steps.changesets-check.outputs.has_changesets == 'true' && steps.create-release.outcome == 'success'
131153
run: |
132154
# Publish with beta tag only after GitHub release is created
133-
node scripts/release-packages-beta.js
155+
RELEASE_TAG=beta node scripts/release-packages.cjs
134156
env:
135157
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
136158
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

.github/workflows/release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ jobs:
9191
VERSION=${{ steps.check-versions.outputs.base_version }}
9292
RELEASE_BRANCH="release/v${VERSION}"
9393
94+
# Delete existing release branch if it exists
95+
git push origin --delete $RELEASE_BRANCH 2>/dev/null || echo "No existing branch to delete"
96+
9497
git checkout -b $RELEASE_BRANCH
9598
git config user.name "github-actions[bot]"
9699
git config user.email "github-actions[bot]@users.noreply.github.com"

0 commit comments

Comments
 (0)