Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions .changeset/lazy-release-test.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@vue-pivottable/lazy-table-renderer": patch
---

test: 릴리즈 워크플로우 테스트
5 changes: 5 additions & 0 deletions .changeset/lazy-test-again.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@vue-pivottable/lazy-table-renderer": patch
---

test: main 워크플로우 수정 확인
34 changes: 34 additions & 0 deletions .github/workflows/backup/create-release-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
name: Create Release PR

on:
push:
branches:
- main

jobs:
create-release-pr:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write

steps:
- uses: actions/checkout@v4
with:
ref: release

- name: Reset main branch
run: |
git fetch origin main:main
git reset --hard main

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
with:
branch: main-to-release
commit-message: 'chore: sync main to release [skip ci]'
title: 'chore: sync main to release'
body: |
이 PR은 main 브랜치의 변경사항을 release 브랜치로 동기화합니다.

이 PR이 머지되면 release 워크플로우가 자동으로 트리거됩니다.
77 changes: 77 additions & 0 deletions .github/workflows/backup/release-lazy-table-renderer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# name: Release lazy-table-renderer

# on:
# push:
# branches:
# - release
# paths:
# - 'packages/lazy-table-renderer/**'

# jobs:
# release:
# name: 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@v3
# 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: Build
# run: pnpm -F @vue-pivottable/lazy-table-renderer build
# - name: Generate GitHub App Token
# id: generate-token
# uses: tibdex/github-app-token@v1
# with:
# app_id: ${{ secrets.APP_ID }}
# private_key: ${{ secrets.APP_PRIVATE_KEY }}
# installation_id: ${{ secrets.APP_INSTALLATION_ID }}
# - name: Release
# env:
# GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
# NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
# run: |
# cd packages/lazy-table-renderer
# pnpm dlx semantic-release

# - uses: actions/checkout@v4
# with:
# ref: main
# - name: Reset release branch
# run: |
# git fetch origin release:release
# git reset --hard release
# - name: Create Pull Request
# if: success()
# uses: peter-evans/create-pull-request@v5
# with:
# branch: release-to-main
# commit-message: 'chore: update version to latest release [skip ci]'
# title: 'chore: update version to latest release [skip ci]'
# body: |
# 이 PR은 release 브랜치의 최신 버전 정보로 main 브랜치를 업데이트합니다.

# - package.json 버전 업데이트
# - CHANGELOG.md 업데이트

# 이 PR은 release 워크플로우에 의해 자동으로 생성되었습니다.
49 changes: 49 additions & 0 deletions .github/workflows/backup/release-plotly-renderer.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# name: Release plotly-renderer

# on:
# push:
# branches:
# - main
# paths:
# - 'packages/plotly-renderer/**'

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

# - name: Setup Node.js
# uses: actions/setup-node@v3
# 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: Build
# run: pnpm -F @vue-pivottable/plotly-renderer build

# - name: Release
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN_SUMIN }}
# NPM_TOKEN: ${{ secrets.NPM_TOKEN_SUMIN }}
# run: |
# cd packages/plotly-renderer
# pnpm dlx semantic-release
73 changes: 73 additions & 0 deletions .github/workflows/backup/release-vue-pivottable.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Release vue-pivottable

on:
push:
branches:
- release
jobs:
release:
name: 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@v3
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: Build
run: pnpm build
- name: Generate GitHub App Token
id: generate-token
uses: tibdex/github-app-token@v1
with:
app_id: ${{ secrets.APP_ID }}
private_key: ${{ secrets.APP_PRIVATE_KEY }}
installation_id: ${{ secrets.APP_INSTALLATION_ID }}
- name: Release
env:
GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
pnpm dlx semantic-release

- uses: actions/checkout@v4
with:
ref: main

- name: Reset release branch
run: |
git fetch origin release:release
git reset --hard release
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
branch: release-to-main
commit-message: 'chore: update version to latest release [skip ci]'
title: 'chore: update version to latest release [skip ci]'
body: |
이 PR은 release 브랜치의 최신 버전 정보로 main 브랜치를 업데이트합니다.

- package.json 버전 업데이트
- CHANGELOG.md 업데이트

이 PR은 release 워크플로우에 의해 자동으로 생성되었습니다.
57 changes: 40 additions & 17 deletions .github/workflows/release-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -125,28 +125,51 @@ jobs:
echo "Building sub-packages..."
pnpm -r --filter './packages/*' build # Build sub-packages after main

- name: Create GitHub Pre-release
- name: Create GitHub Pre-releases
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.
run: |
# Create release for each package with beta version
create_release() {
local PKG_NAME=$1
local PKG_VERSION=$2
local NPM_NAME=$3

Install with: `npm install vue-pivottable@beta`
echo "Creating release for $PKG_NAME@$PKG_VERSION"

### Version: ${{ steps.version.outputs.version }}
gh release create "${PKG_NAME}@${PKG_VERSION}" \
--title "${PKG_NAME}@${PKG_VERSION}" \
--notes "## 🚧 Pre-release (Beta)

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

Install with: \`npm install ${NPM_NAME}@beta\`

### Version: ${PKG_VERSION}" \
--prerelease \
--target ${{ github.sha }}
}

# Check main package
MAIN_VERSION=$(node -p "require('./package.json').version")
if [[ $MAIN_VERSION == *"-beta"* ]]; then
create_release "vue-pivottable" "$MAIN_VERSION" "vue-pivottable"
fi

# Check sub-packages
for pkg in packages/*/; do
if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
PKG_NAME=$(cd "$pkg" && node -p "require('./package.json').name")
PKG_VERSION=$(cd "$pkg" && node -p "require('./package.json').version")
if [[ $PKG_VERSION == *"-beta"* ]]; then
create_release "$PKG_NAME" "$PKG_VERSION" "$PKG_NAME"
fi
fi
done
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Publish pre-release to npm
if: steps.changesets-check.outputs.has_changesets == 'true' && steps.create-release.outcome == 'success'
if: steps.changesets-check.outputs.has_changesets == 'true'
run: |
# Publish with beta tag only after GitHub release is created
RELEASE_TAG=beta node scripts/release-packages.cjs
Expand Down
60 changes: 45 additions & 15 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,11 @@ jobs:
- name: Update versions to stable
if: steps.check-versions.outputs.has_beta == 'true'
run: |
# Update main package
npm version ${{ steps.check-versions.outputs.base_version }} --no-git-tag-version
# Update main package only if it has beta
MAIN_VERSION=$(node -p "require('./package.json').version")
if [[ $MAIN_VERSION == *"-beta"* ]]; then
npm version ${{ steps.check-versions.outputs.base_version }} --no-git-tag-version
fi

# Update sub-packages
for pkg in packages/*/; do
Expand Down Expand Up @@ -144,22 +147,49 @@ jobs:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN_SUMIN: ${{ secrets.NPM_TOKEN_SUMIN }}

- name: Create GitHub Release
- name: Create GitHub Releases
if: steps.check-versions.outputs.has_beta == 'true'
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.create-release.outputs.version }}
release_name: Release v${{ steps.create-release.outputs.version }}
draft: false
prerelease: false
body: |
## 🚀 Stable Release
run: |
# Create release for each package with stable version
create_release() {
local PKG_NAME=$1
local PKG_VERSION=$2
local NPM_NAME=$3

echo "Creating release for $PKG_NAME@$PKG_VERSION"

This release promotes the beta version to stable.
# Delete existing release if it exists (likely a beta version)
gh release delete "${PKG_NAME}@${PKG_VERSION}" --yes 2>/dev/null || true

Install with: `npm install vue-pivottable@latest`
gh release create "${PKG_NAME}@${PKG_VERSION}" \
--title "${PKG_NAME}@${PKG_VERSION}" \
--notes "## 🚀 Stable Release

This release promotes the beta version to stable.

Install with: \`npm install ${NPM_NAME}@latest\`

### Version: ${PKG_VERSION}" \
--target ${{ github.sha }}
}

# Check main package
MAIN_VERSION=$(node -p "require('./package.json').version")
create_release "vue-pivottable" "$MAIN_VERSION" "vue-pivottable"

# Check sub-packages
for pkg in packages/*/; do
if [ -d "$pkg" ] && [ -f "$pkg/package.json" ]; then
PKG_NAME=$(cd "$pkg" && node -p "require('./package.json').name")
PKG_VERSION=$(cd "$pkg" && node -p "require('./package.json').version")
# Create release for all packages that were released
if [ "$PKG_NAME" != "" ] && [ "$PKG_VERSION" != "" ]; then
create_release "$PKG_NAME" "$PKG_VERSION" "$PKG_NAME"
fi
fi
done
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create PR to update main
if: steps.check-versions.outputs.has_beta == 'true'
Expand Down
Loading