Repository navigation
docs: credit good-css in the README and vendor its skill for agents #256
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: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| quality: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup toolchain | |
| uses: moonrepo/setup-toolchain@v0 | |
| with: | |
| moon-version: "2.0.0" | |
| auto-install: true | |
| # Runs before `moon ci` so the gate reads the committed metadata and not a | |
| # tree repaired by another task in the same pipeline. `cssforge:version-sync` | |
| # is excluded from CI for the same reason. | |
| - name: Check release metadata consistency | |
| run: moon run --force cssforge:version-check | |
| # `--force` suppresses moon's InstallDependencies action, which the build | |
| # this gate depends on needs. | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| # Only JSR's type analysis rejects a public API without explicit types, | |
| # and that failure would otherwise surface during publish. | |
| # `moon exec --ignore-ci-checks` is required because `jsr-dry-run` is | |
| # `runInCI: false`, which `moon run` refuses in a CI environment. | |
| - name: Check JSR publishability | |
| run: moon exec --ignore-ci-checks --force cssforge:jsr-dry-run | |
| - name: Run CI | |
| run: moon ci | |
| browser-e2e: | |
| name: Browser e2e (theme scoping) | |
| runs-on: ubuntu-latest | |
| # `moon ci` does not select the example suites (`runInCI: false`), so this | |
| # job is what runs them. Pull requests only: the browser download is not | |
| # needed on the push to main, whose commit its PR already gated. | |
| if: github.event_name == 'pull_request' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup toolchain | |
| uses: moonrepo/setup-toolchain@v0 | |
| with: | |
| moon-version: "2.0.0" | |
| auto-install: true | |
| # `--force` suppresses moon's InstallDependencies action. | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| # `--filter` is required: `@playwright/test` belongs to the example | |
| # package, so the root cannot resolve the binary. Chromium is the only | |
| # project in the example's Playwright config. | |
| - name: Install Playwright browsers | |
| run: pnpm --filter vanilla-react-css exec playwright install --with-deps chromium | |
| # `vanilla-react-css:e2e` is `runInCI: false`, which `moon run` refuses in | |
| # a CI environment. | |
| - name: Run the browser suite | |
| run: moon exec --ignore-ci-checks --force vanilla-react-css:e2e | |
| # The Playwright suite runs against the dev server. This is what proves a | |
| # production build emits the plugin's generated stylesheet. | |
| - name: Build the example for production | |
| run: moon exec --ignore-ci-checks --force vanilla-react-css:build | |
| node-floor: | |
| name: Package smoke on Node 24.0.0 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup toolchain | |
| uses: moonrepo/setup-toolchain@v0 | |
| with: | |
| moon-version: "2.0.0" | |
| auto-install: true | |
| # 24.0.0 is the floor declared by the package `engines` field. | |
| - name: Setup Node 24.0.0 | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24.0.0" | |
| package-manager-cache: false | |
| - name: Smoke test the packed package on the supported engine floor | |
| run: moon run cssforge:smoke-test -- --node "$(command -v node)" | |
| jsr-entries: | |
| name: JSR entry points | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup toolchain | |
| uses: moonrepo/setup-toolchain@v0 | |
| with: | |
| moon-version: "2.0.0" | |
| auto-install: true | |
| - name: Setup Deno | |
| uses: denoland/setup-deno@v2 | |
| with: | |
| deno-version: v2.x | |
| - name: Smoke test the JSR entry points with Deno | |
| run: moon run cssforge:jsr-smoke -- --require-deno |