chore: release v0.2.79 #116
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: Releaser | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| workflow_dispatch: | |
| jobs: | |
| # ── Phase 1+2: core packages (blocking) ───────────────────────────────── | |
| # Publish order is controlled with staged --skip lists: pantry publishes in | |
| # directory-scan order (effectively arbitrary), and the v0.2.71 release | |
| # proved the failure mode — the run died rate-limited on an icon package | |
| # while @stacksjs/stx itself was still unpublished. skip_existing makes the | |
| # staged re-invocations cheap: already-published packages cost one GET. | |
| npm: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| - name: Install Dependencies | |
| run: bun install | |
| - name: Setup Pantry | |
| uses: home-lang/pantry/packages/action@main | |
| with: | |
| install: false | |
| # Stage 1: the framework itself ships first — @stacksjs/stx, | |
| # bun-plugin-stx, and @stacksjs/desktop are what consumers wait on. | |
| - name: Publish stx + bun-plugin-stx + desktop | |
| run: pantry publish --npm --access public --skip collections,components,config,create-stx,iconify-core,iconify-generator,markdown,router,sanitizer | |
| env: | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| # Stage 2: remaining core packages (stx/bun-plugin skip via cheap GET). | |
| - name: Publish remaining core packages | |
| run: pantry publish --npm --access public --skip collections | |
| env: | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| - name: Create GitHub Release | |
| uses: home-lang/pantry/packages/action@main | |
| with: | |
| install: false | |
| release: true | |
| release-changelog: CHANGELOG.md | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| # ── Phase 3: icon collections (non-blocking) ──────────────────────────── | |
| # 218 generated @stacksjs/iconify-* packages. npm rate-limits this volume, | |
| # so the job runs after — and independently of — the core release: a 429 | |
| # storm here can never delay or fail the framework release. skip_existing | |
| # means a re-run of this job resumes where the rate limit cut it off. | |
| icons: | |
| needs: npm | |
| runs-on: ubuntu-latest | |
| continue-on-error: true | |
| timeout-minutes: 150 | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| - name: Install Dependencies | |
| run: bun install | |
| - name: Setup Pantry | |
| uses: home-lang/pantry/packages/action@main | |
| with: | |
| install: false | |
| - name: Pre-build icon collections (parallel) | |
| # Each Bun build is fast (~0.3-1.6s); parallel pre-build makes | |
| # prepublishOnly a ~50ms no-op per package because build.ts | |
| # short-circuits on a fresh dist/. | |
| run: | | |
| set -e | |
| ls -d packages/collections/iconify-*/ 2>/dev/null \ | |
| | xargs -P 8 -I {} bash -c 'cd "{}" && bun build.ts' \ | |
| || echo "::warning::Some icon pre-builds failed; pantry will retry via prepublishOnly" | |
| - name: Publish icon collections | |
| run: pantry publish --npm --access public --skip bun-plugin,components,config,create-stx,desktop,iconify-core,iconify-generator,markdown,router,sanitizer,stx | |
| env: | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} |