docs(theme): exploring a full theme customizer #9975
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: module | |
| on: | |
| push: | |
| branches: | |
| - v4 | |
| pull_request: | |
| branches: | |
| - v4 | |
| concurrency: | |
| # Group pull request runs per number so a new push cancels the previous one, and give every push on v4 | |
| # its own group since each of them also covers windows and publishes its own preview package | |
| group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.event.number || github.run_id }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| strategy: | |
| matrix: | |
| os: ${{ github.event_name == 'pull_request' && fromJSON('["ubuntu-latest"]') || fromJSON('["ubuntu-latest", "windows-latest"]') }} # macos-latest | |
| node: [24] | |
| env: | |
| NUXT_GITHUB_TOKEN: ${{ secrets.NUXT_GITHUB_TOKEN }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v6 | |
| - name: Install node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Prepare | |
| run: pnpm run dev:prepare | |
| - parallel: | |
| - name: Lint | |
| run: pnpm run lint | |
| - name: Typecheck | |
| run: pnpm run typecheck | |
| - name: Test | |
| run: pnpm run test run | |
| - name: Build | |
| run: pnpm run build | |
| - parallel: | |
| - name: Build Nuxt playground | |
| run: pnpm run dev:build | |
| - name: Build Vue playground | |
| run: pnpm run dev:vue:build | |
| - name: Publish | |
| # Only publish preview package on ubuntu, and skip forks of the repo (pkg-pr-new still runs on fork PRs against nuxt/ui) | |
| if: matrix.os == 'ubuntu-latest' && github.repository_owner == 'nuxt' | |
| run: pnpx pkg-pr-new publish --compact --no-template --pnpm | |
| playground: | |
| needs: build | |
| runs-on: ${{ matrix.os }} | |
| defaults: | |
| run: | |
| working-directory: ./playgrounds/nuxt | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| env: | |
| pnpm_config_strict_dep_builds: false | |
| pnpm_config_verify_deps_before_run: false | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest] # macos-latest, windows-latest | |
| node: [24] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Store commit SHA | |
| run: | | |
| echo "COMMIT_SHA=$(echo ${{ github.event.pull_request.head.sha || github.sha }} | cut -c1-7)" >> $GITHUB_ENV | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v6 | |
| - name: Install node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: pnpm | |
| - name: Install latest nuxt/ui | |
| run: pnpm install https://pkg.pr.new/@nuxt/ui@${{ env.COMMIT_SHA }} --lockfile-only | |
| - name: Install dependencies | |
| run: pnpm install --ignore-workspace | |
| - name: Prepare | |
| run: pnpm nuxt prepare | |
| - name: Typecheck | |
| run: pnpm run typecheck | |
| templates: | |
| needs: build | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| strategy: | |
| # Keep validating every template when one of them breaks | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest] # macos-latest, windows-latest | |
| node: [24] | |
| template: | |
| - starter | |
| - starter-vue | |
| - landing | |
| - docs | |
| - saas | |
| - dashboard | |
| - dashboard-vue | |
| - chat | |
| - chat-vue | |
| - portfolio | |
| - changelog | |
| - editor | |
| include: | |
| # Build with vite directly since the `build` script also runs the database migrations | |
| - template: chat-vue | |
| build: pnpm vite build | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| repository: nuxt-ui-templates/${{ matrix.template }} | |
| - name: Store commit SHA | |
| run: | | |
| echo "COMMIT_SHA=$(echo ${{ github.event.pull_request.head.sha || github.sha }} | cut -c1-7)" >> $GITHUB_ENV | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v6 | |
| - name: Install node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: pnpm | |
| - name: Install latest nuxt/ui | |
| run: pnpm install https://pkg.pr.new/@nuxt/ui@${{ env.COMMIT_SHA }} --lockfile-only | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Build | |
| run: ${{ matrix.build || 'pnpm run build' }} | |
| - name: Typecheck | |
| run: pnpm run typecheck | |
| benchmarks: | |
| # Skip forks of the repo, they can't authenticate with CodSpeed | |
| if: github.repository_owner == 'nuxt' | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: read | |
| id-token: write # for OpenID Connect authentication with CodSpeed | |
| env: | |
| NUXT_GITHUB_TOKEN: ${{ secrets.NUXT_GITHUB_TOKEN }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest] | |
| node: [24] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@v6 | |
| - name: Install node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install | |
| - name: Prepare | |
| run: pnpm run dev:prepare | |
| - name: Run benchmarks | |
| uses: CodSpeedHQ/action@v5 | |
| with: | |
| mode: simulation | |
| run: pnpm run bench |