mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-09-14 20:00:35 +08:00
dd679a6e25
* chore(v4): stop tracking generated styles Phase 2 of generated-output untracking (follows #11189). The compiled style sources under apps/v4/styles (base-*/radix-*, ~1,080 files) are produced by registry:build (copyUIToStyles + RTL) on every deploy, so the committed copies were redundant. Only styles/README.md stays tracked. Unlike public/r/styles, these are imported modules, so: - code-check.yml: the typecheck job now runs `registry:build --style all` (the fast targeted build) after installing Bun, since v4 typecheck imports @/styles/*. - next.config.mjs: fail fast in dev with the regeneration command when the styles are missing, instead of a module-not-found cascade. - .prettierignore: skip styles/ — targeted builds intentionally skip prettier on generated output. - turbo.json: declare public/r/styles/** and styles/** as build outputs so a turbo cache replay of v4#build restores them (also fixes a latent phase-1 gap where a cache hit could deploy without registry JSON). Fresh clones: run `pnpm --filter=v4 registry:build --style all` once (~50s) before next dev; see styles/README.md. * docs: document untracked generated styles in CONTRIBUTING * fix(v4): register gitignored styles as tailwind sources Tailwind v4's source detection skips gitignored files, so untracking styles/ dropped every utility class that only appears in the generated output — progress bars collapsed (h-1), radio indicators and bubble radii lost their styles. An explicit @source glob only overrides .gitignore when the path through the ignored level is literal: ../styles/**/*.tsx gets pruned at the ignored directory, while ../styles/base-nova/**/*.tsx is scanned. Register each generated style explicitly. When adding a new style, add a line here. Verified byte-identical CSS output against an unrestricted scan.
131 lines
3.2 KiB
YAML
131 lines
3.2 KiB
YAML
name: Code check
|
|
|
|
on:
|
|
pull_request:
|
|
branches: ["*"]
|
|
|
|
jobs:
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
name: pnpm lint
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 20
|
|
|
|
- uses: pnpm/action-setup@v4
|
|
name: Install pnpm
|
|
id: pnpm-install
|
|
with:
|
|
version: 10.33.4
|
|
run_install: false
|
|
|
|
- name: Get pnpm store directory
|
|
id: pnpm-cache
|
|
run: |
|
|
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
|
|
- uses: actions/cache@v3
|
|
name: Setup pnpm cache
|
|
with:
|
|
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
|
|
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pnpm-store-
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- run: pnpm lint
|
|
|
|
format:
|
|
runs-on: ubuntu-latest
|
|
name: pnpm format:check
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 20
|
|
|
|
- uses: pnpm/action-setup@v4
|
|
name: Install pnpm
|
|
id: pnpm-install
|
|
with:
|
|
version: 10.33.4
|
|
run_install: false
|
|
|
|
- name: Get pnpm store directory
|
|
id: pnpm-cache
|
|
run: |
|
|
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
|
|
|
|
- uses: actions/cache@v3
|
|
name: Setup pnpm cache
|
|
with:
|
|
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
|
|
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pnpm-store-
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- name: Build packages
|
|
run: pnpm build:packages
|
|
|
|
- run: pnpm format:check
|
|
|
|
tsc:
|
|
runs-on: ubuntu-latest
|
|
name: pnpm typecheck
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Install Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 20
|
|
|
|
- uses: pnpm/action-setup@v4
|
|
name: Install pnpm
|
|
id: pnpm-install
|
|
with:
|
|
version: 10.33.4
|
|
run_install: false
|
|
|
|
- name: Get pnpm store directory
|
|
id: pnpm-cache
|
|
run: |
|
|
echo "pnpm_cache_dir=$(pnpm store path)" >> $GITHUB_OUTPUT
|
|
- uses: actions/cache@v3
|
|
name: Setup pnpm cache
|
|
with:
|
|
path: ${{ steps.pnpm-cache.outputs.pnpm_cache_dir }}
|
|
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-pnpm-store-
|
|
- name: Install Bun
|
|
uses: oven-sh/setup-bun@v2
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- name: Build packages
|
|
run: pnpm build:packages
|
|
|
|
# The generated styles under apps/v4/styles are gitignored, and the v4
|
|
# typecheck imports them. Build them before typechecking.
|
|
- name: Build registry styles
|
|
run: pnpm --filter=v4 registry:build --style all
|
|
|
|
- run: pnpm typecheck
|