Files
shadcn dd679a6e25 chore(v4): stop tracking generated styles (#11190)
* 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.
2026-07-16 12:02:36 +04:00

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