Skip to content

docs(theme): exploring a full theme customizer #9975

docs(theme): exploring a full theme customizer

docs(theme): exploring a full theme customizer #9975

Workflow file for this run

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