CLAUDE.mdの@参照を削除してコンテキスト使用量を削減 #281
Workflow file for this run
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: Cleanup Preview | |
| on: | |
| pull_request: | |
| types: [closed, unlabeled] | |
| jobs: | |
| cleanup: | |
| name: Cleanup Preview Environment | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| if: | | |
| github.event.action == 'closed' || | |
| (github.event.action == 'unlabeled' && github.event.label.name == 'with-preview') | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Setup workspace | |
| uses: ./.github/actions/setup-workspace | |
| - name: Pull Vercel Environment | |
| env: | |
| VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | |
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} | |
| VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} | |
| run: | | |
| npx vercel pull --yes --environment=preview --token=$VERCEL_TOKEN | |
| - name: Delete Preview Databases | |
| id: delete-dbs | |
| env: | |
| TURSO_PLATFORM_API_TOKEN: ${{ secrets.TURSO_PLATFORM_API_TOKEN }} | |
| TURSO_ORGANIZATION: ${{ secrets.TURSO_ORG_SLUG }} | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| APP_ENV: ci | |
| run: | | |
| set -a | |
| source .vercel/.env.preview.local | |
| set +a | |
| DB_PREFIX="next-lift-preview-pr${PR_NUMBER}-" | |
| echo "::group::Listing databases with prefix: ${DB_PREFIX}" | |
| if ! DATABASES=$(pnpm --silent --filter @next-lift/turso run db:list --prefix="${DB_PREFIX}"); then | |
| echo "::error::Failed to list databases" | |
| exit 1 | |
| fi | |
| echo "Found databases:" | |
| echo "${DATABASES:- (none)}" | |
| echo "::endgroup::" | |
| if [ -z "$DATABASES" ]; then | |
| echo "No databases to delete" | |
| echo "success_count=0" >> $GITHUB_OUTPUT | |
| echo "fail_count=0" >> $GITHUB_OUTPUT | |
| exit 0 | |
| fi | |
| SUCCESS_COUNT=0 | |
| FAIL_COUNT=0 | |
| echo "::group::Deleting databases" | |
| for DB_NAME in $DATABASES; do | |
| echo "Deleting: ${DB_NAME}" | |
| if pnpm --silent --filter @next-lift/turso run db:delete --name="${DB_NAME}"; then | |
| echo " ✓ Deleted" | |
| SUCCESS_COUNT=$((SUCCESS_COUNT + 1)) | |
| else | |
| echo " ✗ Failed" | |
| FAIL_COUNT=$((FAIL_COUNT + 1)) | |
| fi | |
| done | |
| echo "::endgroup::" | |
| echo "" | |
| echo "=== Summary ===" | |
| echo "Deleted: ${SUCCESS_COUNT}" | |
| echo "Failed: ${FAIL_COUNT}" | |
| echo "success_count=${SUCCESS_COUNT}" >> $GITHUB_OUTPUT | |
| echo "fail_count=${FAIL_COUNT}" >> $GITHUB_OUTPUT | |
| if [ $FAIL_COUNT -gt 0 ]; then | |
| echo "::warning::${FAIL_COUNT} database(s) failed to delete" | |
| fi | |
| - name: Comment PR with Cleanup Info | |
| uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 | |
| env: | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| SUCCESS_COUNT: ${{ steps.delete-dbs.outputs.success_count }} | |
| FAIL_COUNT: ${{ steps.delete-dbs.outputs.fail_count }} | |
| with: | |
| script: | | |
| const prNumber = process.env.PR_NUMBER; | |
| const successCount = parseInt(process.env.SUCCESS_COUNT) || 0; | |
| const failCount = parseInt(process.env.FAIL_COUNT) || 0; | |
| const total = successCount + failCount; | |
| const status = failCount > 0 ? '⚠️' : '✅'; | |
| const body = [ | |
| '## 🗑️ Preview Environment Cleanup', | |
| '', | |
| `${status} PR #${prNumber} のプレビュー環境をクリーンアップしました`, | |
| '', | |
| '| 結果 | 件数 |', | |
| '|------|------|', | |
| `| 削除成功 | ${successCount} |`, | |
| `| 削除失敗 | ${failCount} |`, | |
| `| 合計 | ${total} |`, | |
| '', | |
| '> PRがクローズされたため、関連するデータベースを削除しました。' | |
| ].join('\n'); | |
| github.rest.issues.createComment({ | |
| issue_number: context.issue.number, | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| body: body | |
| }); |