build: update github action for deploy #1
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: Deploy Stories to GitHub Pages | |
| on: | |
| push: | |
| branches: [main, feat/next] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| # Only one deployment at a time; skip queued runs but never cancel an in-progress one. | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: false | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: latest | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm | |
| # ── Module ────────────────────────────────────────────────────────────── | |
| - name: Install root dependencies | |
| run: pnpm install | |
| - name: Build module | |
| run: pnpm build | |
| # ── Playground dependencies ───────────────────────────────────────────── | |
| - name: Install playground dependencies | |
| working-directory: playground | |
| run: pnpm install | |
| # ── Frame pass ────────────────────────────────────────────────────────── | |
| # Generates the component renderer routes at /-frame/** | |
| # NUXT_STORIES_MODE overrides the mode option so the same nuxt.config is reused. | |
| - name: Generate frame output | |
| working-directory: playground | |
| run: pnpm nuxi generate | |
| env: | |
| NUXT_STORIES: "1" | |
| NUXT_STORIES_MODE: frame | |
| # Base path matching the GitHub Pages URL: https://rezozero.github.io/nuxt-stories/ | |
| NUXT_APP_BASE_URL: /nuxt-stories/ | |
| - name: Save frame output | |
| run: mv playground/.output/public playground/.output/frame-public | |
| # ── Shell pass ────────────────────────────────────────────────────────── | |
| # Generates the stories UI (nav + iframe wrapper) | |
| - name: Generate shell output | |
| working-directory: playground | |
| run: pnpm nuxi generate | |
| env: | |
| NUXT_STORIES: "1" | |
| NUXT_STORIES_MODE: shell | |
| NUXT_APP_BASE_URL: /nuxt-stories/ | |
| # ── Merge outputs ─────────────────────────────────────────────────────── | |
| # Copy the frame output's /-frame/** into the shell output so both are | |
| # served from the same origin (required for same-origin postMessage). | |
| - name: Merge frame output into shell output | |
| run: | | |
| cp -r playground/.output/frame-public/-frame playground/.output/public/-frame | |
| # GitHub Pages ignores folders prefixed with _ by default; .nojekyll disables this. | |
| - name: Add .nojekyll | |
| run: touch playground/.output/public/.nojekyll | |
| - name: Upload Pages artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: playground/.output/public | |
| deploy: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |