Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
d38c718
chore: backup workflows to disable GitHub Actions
Seungwoo321 Jun 18, 2025
1075ac6
feat: implement release branch workflow with Changesets
Seungwoo321 Jun 18, 2025
0855445
feat: add pre-release workflow for develop branch
Seungwoo321 Jun 18, 2025
0bc095c
feat: add Husky hooks for build validation
Seungwoo321 Jun 18, 2025
1146fe4
fix: remove prettier from lint-staged to avoid config changes
Seungwoo321 Jun 18, 2025
b1d1ad6
chore: temporarily disable pre-push hook due to build errors
Seungwoo321 Jun 18, 2025
0986a0b
fix: update package tsconfig to reference built dist instead of src
Seungwoo321 Jun 18, 2025
5327d73
fix: configure subpackages to explicitly use vue-pivottable from node…
Seungwoo321 Jun 18, 2025
13f3256
fix: remove deprecated Husky v10 shebang and sourcing lines
Seungwoo321 Jun 18, 2025
a3fe54c
docs: add comprehensive release strategy documentation
Seungwoo321 Jun 18, 2025
0e12b31
fix: improve release workflow and add documentation
Seungwoo321 Jun 18, 2025
5759978
feat: finalize release strategy with quality improvements
Seungwoo321 Jun 19, 2025
2dbc0e9
fix: resolve ESLint configuration and code issues
Seungwoo321 Jun 19, 2025
1b0b6cc
fix: ESLint 및 TypeScript 오류 수정
Seungwoo321 Jun 19, 2025
8943d29
Merge pull request #191 from vue-pivottable/feat/release-branch-workflow
Seungwoo321 Jun 19, 2025
5ba8105
fix: release-develop.yml 중복 env 섹션 제거
Seungwoo321 Jun 19, 2025
b475193
chore: prepare beta release
github-actions[bot] Jun 19, 2025
e5b47f3
docs: 문서 개선 및 PR 자동 업데이트 기능 추가
Seungwoo321 Jun 19, 2025
294736f
chore: pnpm-lock.yaml 업데이트
Seungwoo321 Jun 19, 2025
a59a151
chore: changeset 추가
Seungwoo321 Jun 19, 2025
1965ee4
Merge pull request #192 from vue-pivottable/fix/docs-and-pr-update
Seungwoo321 Jun 19, 2025
a56a834
chore: prepare beta release
github-actions[bot] Jun 19, 2025
224a73a
fix: 베타 릴리스 워크플로우 근본 수정 (3번째 시도)
Seungwoo321 Jun 19, 2025
b554077
docs: AI 사용 지침에 자가 체크 및 작업 우선순위 재검토 프로세스 추가
Seungwoo321 Jun 19, 2025
1d29e50
Merge pull request #193 from vue-pivottable/fix/beta-release-workflow-v3
Seungwoo321 Jun 19, 2025
5420e78
chore: prepare beta release
github-actions[bot] Jun 19, 2025
c2d09a4
fix: 빌드 오류 처리 및 순서 개선
Seungwoo321 Jun 19, 2025
b87be9a
docs: 수민님께 공유할 베타 릴리스 워크플로우 개선 내용
Seungwoo321 Jun 19, 2025
301bb0a
chore: clean up and update dependencies
Seungwoo321 Jun 19, 2025
17aa93a
fix: update lockfile to match package.json dependencies
Seungwoo321 Jun 19, 2025
f856540
Merge pull request #195 from vue-pivottable/fix/build-error-handling
Seungwoo321 Jun 19, 2025
045e4ba
chore: prepare beta release
github-actions[bot] Jun 19, 2025
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
8 changes: 8 additions & 0 deletions .changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
11 changes: 11 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}
34 changes: 0 additions & 34 deletions .github/workflows/create-release-pr.yml

This file was deleted.

95 changes: 95 additions & 0 deletions .github/workflows/pr-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: PR Check

on:
pull_request:
branches:
- main
- develop

jobs:
lint-and-type-check:
name: Lint and Type Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.10.0'

- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: latest

- name: Install dependencies
run: pnpm install

- name: Run ESLint
run: |
echo "Linting main package..."
pnpm lint
echo "Linting all workspace packages..."
pnpm -r lint || true # Continue even if some packages don't have lint script

- name: Run TypeScript type check
run: |
echo "Checking main package..."
pnpm typecheck
echo "Checking all workspace packages..."
pnpm -r typecheck || true # Continue even if some packages don't have typecheck script

- name: Check for changesets
run: |
if [ -n "$(ls -A .changeset/*.md 2>/dev/null | grep -v README.md)" ]; then
echo "✅ Changeset found"
else
echo "⚠️ No changeset found. Please add a changeset with 'pnpm changeset add'"
echo " This is required for all changes that affect published packages."
exit 1
fi

build:
name: Build Check
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.10.0'

- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: latest

- name: Install dependencies
run: pnpm install

- name: Build all packages
run: pnpm build:all

- name: Check build output
run: |
# Check main package
if [ ! -d "dist" ]; then
echo "❌ Main package build output not found"
exit 1
fi

# Check sub-packages
for pkg in packages/*/; do
if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
if [ ! -d "$pkg/dist" ]; then
echo "❌ Build output not found for $pkg"
exit 1
fi
fi
done

echo "✅ All packages built successfully"
211 changes: 211 additions & 0 deletions .github/workflows/release-develop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
name: Release Develop (Pre-release)

on:
push:
branches:
- develop

concurrency: ${{ github.workflow }}-${{ github.ref }}

jobs:
pre-release:
name: Pre-release
runs-on: ubuntu-latest
permissions:
contents: write
issues: write
pull-requests: write
id-token: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.10.0'
registry-url: 'https://registry.npmjs.org/'

- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: latest

- name: Install dependencies
run: pnpm install

- name: Check for changesets
id: changesets-check
run: |
if [ -n "$(ls -A .changeset/*.md 2>/dev/null | grep -v README.md)" ]; then
echo "has_changesets=true" >> $GITHUB_OUTPUT
else
echo "has_changesets=false" >> $GITHUB_OUTPUT
fi

- name: Version packages as beta
id: version
if: steps.changesets-check.outputs.has_changesets == 'true'
run: |
# Apply changesets and consume them
pnpm changeset version

# Update to beta versions
MAIN_VERSION=$(node -p "require('./package.json').version")
TIMESTAMP=$(date +%s)

# Remove ALL existing beta suffixes if present and add new one
CLEAN_VERSION=$(echo "$MAIN_VERSION" | sed 's/-beta\.[0-9]*//g')
BETA_VERSION="${CLEAN_VERSION}-beta.${TIMESTAMP}"

# Update main package
npm version $BETA_VERSION --no-git-tag-version

# Update sub-packages
for pkg in packages/*/; do
if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
cd "$pkg"
PKG_VERSION=$(node -p "require('./package.json').version")
# Remove ALL existing beta suffixes if present and add new one
PKG_CLEAN=$(echo "$PKG_VERSION" | sed 's/-beta\.[0-9]*//g')
PKG_BETA="${PKG_CLEAN}-beta.${TIMESTAMP}"
npm version $PKG_BETA --no-git-tag-version
cd -
fi
done

# Commit all changes
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add -A
git commit -m "chore: prepare beta release"
git push origin develop

echo "version=$BETA_VERSION" >> $GITHUB_OUTPUT

- name: Run quality checks
if: steps.changesets-check.outputs.has_changesets == 'true'
run: |
echo "Running type checks..."
pnpm typecheck
pnpm -r typecheck || true

echo "Running linting..."
pnpm lint
pnpm -r lint || true

- name: Build packages
if: steps.changesets-check.outputs.has_changesets == 'true'
run: |
set -e # Exit immediately if any command fails
echo "Building main package first..."
pnpm build # Build main package first to generate type declarations

echo "Building sub-packages..."
pnpm -r --filter './packages/*' build # Build sub-packages after main

- name: Create GitHub Pre-release
if: steps.changesets-check.outputs.has_changesets == 'true'
id: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: vue-pivottable@${{ steps.version.outputs.version }}
release_name: vue-pivottable@${{ steps.version.outputs.version }}
draft: false
prerelease: true
body: |
## 🚧 Pre-release (Beta)

This is a pre-release version. It may contain bugs and breaking changes.

Install with: `npm install vue-pivottable@beta`

### Version: ${{ steps.version.outputs.version }}

- name: Publish pre-release to npm
if: steps.changesets-check.outputs.has_changesets == 'true' && steps.create-release.outcome == 'success'
run: |
# Publish with beta tag only after GitHub release is created
node scripts/release-packages-beta.js
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN_SUMIN: ${{ secrets.NPM_TOKEN_SUMIN }}

- name: Create or Update PR to main
if: steps.changesets-check.outputs.has_changesets == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# 현재 버전 가져오기
VERSION=$(node -p "require('./package.json').version")

# 기존 PR 확인
PR_NUMBER=$(gh pr list --base main --head develop --state open --json number -q '.[0].number')

if [ -z "$PR_NUMBER" ]; then
# 새 PR 생성
gh pr create \
--base main \
--head develop \
--title "Release: $VERSION" \
--body "## 🚀 Release $VERSION

This PR contains the latest beta release ready for production.

### Beta Version
- $VERSION

### Packages to be released
- vue-pivottable: $VERSION
- Check sub-packages for version updates

### Pre-release Testing
- Beta version has been published to npm with tag @beta
- Install with: \`npm install vue-pivottable@beta\`

### Release Notes
See [CHANGELOG.md](./CHANGELOG.md) for details.

---
⚠️ **Note**: This PR will be automatically updated if new changes are pushed to develop."
else
# 기존 PR 업데이트
echo "Updating existing PR #$PR_NUMBER with new beta version..."

gh pr edit $PR_NUMBER \
--title "Release: $VERSION" \
--body "## 🚀 Release $VERSION (Updated)

This PR has been automatically updated with the latest beta release.

### Current Beta Version
- $VERSION

### Packages to be released
- vue-pivottable: $VERSION
- Check sub-packages for version updates

### Pre-release Testing
- Beta version has been published to npm with tag @beta
- Install with: \`npm install vue-pivottable@beta\`

### ⚠️ Important
**This PR has been updated with new commits. Please review the changes again.**

### Release Notes
See [CHANGELOG.md](./CHANGELOG.md) for details.

---
Last updated: $(date -u +"%Y-%m-%d %H:%M:%S UTC")"

# PR을 ready for review 상태로 설정
gh pr ready $PR_NUMBER

# auto-updated 라벨 추가
gh pr edit $PR_NUMBER --add-label "auto-updated,needs-review"
fi
Loading