Rename Package and Prop Name #22
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Changeset Check | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| changeset-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Check if changeset is required | |
| id: check-skip | |
| run: | | |
| # PR에 'skip-changeset' 라벨이 있는지 확인 | |
| if [[ "${{ contains(github.event.pull_request.labels.*.name, 'skip-changeset') }}" == "true" ]]; then | |
| echo "skip=true" >> $GITHUB_OUTPUT | |
| echo "⏭️ Skipping changeset check due to 'skip-changeset' label" | |
| exit 0 | |
| fi | |
| # 변경된 파일 목록 가져오기 | |
| git fetch origin ${{ github.base_ref }} | |
| # main 브랜치를 로컬에 명시적으로 생성 (changeset status를 위해 필요) | |
| git fetch origin ${{ github.base_ref }}:refs/remotes/origin/${{ github.base_ref }} | |
| CHANGED_FILES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD) | |
| # 문서, CI, 설정 파일만 변경된 경우 체크 | |
| if echo "$CHANGED_FILES" | grep -qvE '^(\.github/|\.changeset/|\.vscode/|docs/|README\.md|LICENSE|\.gitignore|\.prettierrc|\.eslintrc|package\.json|tsconfig\.json|vite\.config\.ts)'; then | |
| echo "skip=false" >> $GITHUB_OUTPUT | |
| echo "📦 Source code changes detected - changeset required" | |
| else | |
| echo "skip=true" >> $GITHUB_OUTPUT | |
| echo "⏭️ Only docs/config changes detected - skipping changeset check" | |
| fi | |
| - name: Setup pnpm | |
| if: steps.check-skip.outputs.skip != 'true' | |
| uses: pnpm/action-setup@v4 | |
| with: | |
| version: 9 | |
| - name: Setup Node.js | |
| if: steps.check-skip.outputs.skip != 'true' | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| cache: "pnpm" | |
| - name: Install dependencies | |
| if: steps.check-skip.outputs.skip != 'true' | |
| run: pnpm install --frozen-lockfile | |
| - name: Check for changesets | |
| if: steps.check-skip.outputs.skip != 'true' | |
| run: | | |
| # .changeset 디렉토리에 있는 .md 파일 개수 확인 (config.json, README.md 제외) | |
| CHANGESET_COUNT=$(find .changeset -name "*.md" ! -name "README.md" | wc -l) | |
| echo "Found $CHANGESET_COUNT changeset(s)" | |
| if [ "$CHANGESET_COUNT" -eq 0 ]; then | |
| echo "❌ Error: No changeset found!" | |
| echo "" | |
| echo "Please add a changeset to describe your changes:" | |
| echo " pnpm changeset" | |
| echo "" | |
| echo "This helps us maintain a proper changelog and version history." | |
| echo "" | |
| echo "If you believe this PR doesn't need a changeset (docs/config only)," | |
| echo "please add the 'skip-changeset' label to this PR." | |
| exit 1 | |
| else | |
| echo "✅ Changeset found!" | |
| echo "" | |
| echo "Changeset files:" | |
| find .changeset -name "*.md" ! -name "README.md" -exec echo " - {}" \; | |
| fi | |
| - name: Validate changeset format | |
| if: steps.check-skip.outputs.skip != 'true' | |
| run: pnpm changeset status --since=origin/${{ github.base_ref }} --verbose |