Skip to content

test: added CI testing for all blocks installation#147

Merged
WINOFFRG merged 5 commits into
mainfrom
test/ci-installs
May 10, 2026
Merged

test: added CI testing for all blocks installation#147
WINOFFRG merged 5 commits into
mainfrom
test/ci-installs

Conversation

@WINOFFRG
Copy link
Copy Markdown
Owner

@WINOFFRG WINOFFRG commented May 10, 2026

Summary by CodeRabbit

  • Style

    • Updated playback control button styling for improved visual consistency.
  • Chores / Tests

    • CI pipeline enhanced with a registry-install test job; typecheck now runs only on push events.
  • Refactor

    • Simplified playback rate UI and internal component wiring; updated media module boundary to ensure correct client behavior.
  • Chores

    • Updated subproject reference.

Review Change Stack

Copilot AI review requested due to automatic review settings May 10, 2026 13:07
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 10, 2026

Warning

Rate limit exceeded

@rohangupta-zomato has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 56 minutes and 4 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3b33c5a6-aae9-4d30-a24b-d1be72224bc7

📥 Commits

Reviewing files that changed from the base of the PR and between eaab228 and 6efe67b.

📒 Files selected for processing (1)
  • .github/workflows/ci.yml
📝 Walkthrough

Walkthrough

Refactors Select-based playback-rate components and prop passing, adds "use client" to basic-player media-kit and updates imports and registry mapping, tweaks a button variant, updates a registry submodule pin, and adds a CI job to run a registry-install test.

Changes

Player Component and Registry Refactor

Layer / File(s) Summary
Component API Changes
apps/www/registry/default/ui/playback-rate.tsx
Removes SelectTrigger wrapper export and trims select imports to only SelectRoot and SelectGroup primitives.
Select Component Refactoring
apps/www/registry/default/blocks/linear-player/components/playback-rate-control.tsx, apps/www/registry/default/examples/playback-rate-demo.tsx
Adds React imports and refactors Select.SelectContent props using a React.ComponentProps<typeof Select.SelectContent> typed spread to centralize alignItemWithTrigger and position.
Client Component Module Setup
apps/www/registry/default/blocks/basic-player/lib/media-kit.ts
Adds "use client" directive to mark the module as a client-side boundary.
Import Path Updates
apps/www/registry/default/blocks/basic-player/components/media-player.tsx
Updates MediaProvider import to use basic-player/lib/media-kit.
Button Styling Update
apps/www/registry/default/blocks/basic-player/components/playback-state-control.tsx
Changes PlaybackStateControl Button variant from glass to ghost.
Registry Collection Configuration
apps/www/registry/collection/registry-blocks.ts
Updates basic-player block registry:lib reference from blocks/basic-player/lib/media.ts to blocks/basic-player/lib/media-kit.ts.
Submodule and Dependencies
apps/www/registry/pro
Pins registry pro submodule to new commit 7c47ec191091bcaa5a02df8f2eab484f0f85e1c6.
CI and Registry Install Test
.github/workflows/ci.yml
Adds if: github.event_name == 'push' to typecheck job and introduces registry-install-test job that sets up Node v22 and Bun, runs bun install --frozen-lockfile, and executes bun run test:registry-install in apps/www with a 20-minute timeout.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Poem

🐰 I hopped through props and cleaned the nest,
SelectTrigger left for gentle rest,
Typed spreads laid out the way,
"use client" made the kit play,
CI checks ensure the registry’s blessed.

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title 'test: added CI testing for all blocks installation' accurately reflects the main objective—adding a new CI job for testing block installations. However, the changeset includes significant modifications beyond CI testing: refactoring component imports, renaming library files, changing UI variants, and removing exported components. The title focuses only on the CI aspect and omits the substantial codebase changes. Revise the title to encompass both CI additions and code refactoring, such as: 'refactor: add registry-install CI job and update basic-player/linear-player components' or provide separate PRs for CI and refactoring changes.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch test/ci-installs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an integration-style CI test to validate that Limeplay registry blocks can be installed into freshly scaffolded apps and successfully built, while also making a few registry/block fixes to keep installs/builds compatible.

Changes:

  • Add a new test:registry-install script that builds the registry, serves public/, scaffolds apps (Next.js + TanStack Start; radix + base), installs all blocks, generates routes, and builds.
  • Fix basic-player registry wiring by referencing media-kit.ts (and update import/registry metadata accordingly).
  • Adjust playback-rate demo/control usage and simplify playback-rate UI exports.

Reviewed changes

Copilot reviewed 11 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
apps/www/scripts/test-registry-install.ts New end-to-end install/build test runner used by CI.
apps/www/registry/default/ui/playback-rate.tsx Removes the extra SelectTrigger wrapper/export.
apps/www/registry/default/examples/playback-rate-demo.tsx Adjusts SelectContent props usage for broader template compatibility.
apps/www/registry/default/blocks/linear-player/components/playback-rate-control.tsx Same SelectContent prop adjustment as the demo.
apps/www/registry/default/blocks/basic-player/lib/media-kit.ts Marks media kit as client module.
apps/www/registry/default/blocks/basic-player/components/playback-state-control.tsx Switches button variant to ghost (more template-compatible than custom variants).
apps/www/registry/default/blocks/basic-player/components/media-player.tsx Updates import to use lib/media-kit.
apps/www/registry/collection/registry-blocks.ts Updates basic-player block file path from media.ts to media-kit.ts.
apps/www/package.json Adds test:registry-install script entry.
.github/workflows/ci.yml Adds registry install test job; changes when typecheck runs.

Comment on lines +389 to +396
server = http.createServer((req, res) => {
const urlPath = req.url?.split("?")[0] ?? "/"
const filePath = join(PUBLIC_DIR, urlPath)

if (!existsSync(filePath) || !statSync(filePath).isFile()) {
res.writeHead(404)
res.end("Not found")
return
Comment on lines +27 to +28

const SCRIPT_DIR = resolve(dirname(new URL(import.meta.url).pathname))
Comment thread .github/workflows/ci.yml
Comment on lines 35 to 39
typecheck:
name: Type Check
runs-on: ubuntu-latest
if: github.event_name == 'push'
steps:
Comment thread .github/workflows/ci.yml
Comment on lines +79 to +83
- uses: actions/checkout@v4
with:
token: ${{ secrets.WINOFFRG_PAT }}
submodules: recursive

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🧹 Nitpick comments (1)
apps/www/registry/default/blocks/linear-player/components/playback-rate-control.tsx (1)

3-4: 💤 Low value

Consider using a type-only import.

Since the React import is only used for type access (React.ComponentProps), you can optimize this with a type-only import for better tree-shaking and clarity:

-import React from "react"
+import type { ComponentProps } from "react"

Then update line 29:

-} as React.ComponentProps<typeof Select.SelectContent>)}
+} as ComponentProps<typeof Select.SelectContent>)}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@apps/www/registry/default/blocks/linear-player/components/playback-rate-control.tsx`
around lines 3 - 4, The current import "import React from 'react'" is only used
for type access (React.ComponentProps); change it to a type-only import and
update the prop typing: replace the default React import with "import type {
ComponentProps } from 'react'" and update the usage of React.ComponentProps (on
the component props at or around line 29) to just ComponentProps<typeof
SomeElementOrComponent> so the import is purely type-only and tree-shakeable.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/ci.yml:
- Line 38: The CI currently skips the typecheck job for pull requests because
the job-level condition uses "if: github.event_name == 'push'"; update the
typecheck job's conditional so it also runs for pull_requests (or at least
same-repo PRs) — e.g., change the condition on the typecheck job to allow
github.event_name == 'pull_request' as well, or use a guard that runs when
github.event_name == 'pull_request' and
github.event.pull_request.head.repo.full_name == github.repository to exclude
forked PRs; locate the typecheck job and replace the existing if condition
accordingly.
- Around line 79-83: The checkout step currently passes the secret-backed token
(uses: actions/checkout@v4 with token: ${{ secrets.WINOFFRG_PAT }}) which will
fail for forked PRs; update the workflow to guard that usage by branching the
checkout: create two checkout steps (both using uses: actions/checkout@v4) and
add an if conditional so the step that uses token: ${{ secrets.WINOFFRG_PAT }}
only runs when the PR is not from a fork (e.g. if: github.event.pull_request ==
null || !github.event.pull_request.head.repo.fork) and have the other step (no
secret token or using github.token) run for forked PRs; this ensures the
checkout step(s) referenced by uses: actions/checkout@v4 won’t reference secrets
for forked PRs.

In `@apps/www/registry/collection/registry-blocks.ts`:
- Line 141: Update verification: ensure you ran the registry build after moving
media.ts to blocks/basic-player/lib/media-kit.ts by executing "bun run
registry:build" from the apps/www/ directory, confirm the command completed
without errors, and re-run tests; also scan the repo for any remaining
references to the old media.ts path and confirm registry-blocks.ts now points to
"blocks/basic-player/lib/media-kit.ts" (search for that string) and that the
build output/artifacts reflect the new file location.

---

Nitpick comments:
In
`@apps/www/registry/default/blocks/linear-player/components/playback-rate-control.tsx`:
- Around line 3-4: The current import "import React from 'react'" is only used
for type access (React.ComponentProps); change it to a type-only import and
update the prop typing: replace the default React import with "import type {
ComponentProps } from 'react'" and update the usage of React.ComponentProps (on
the component props at or around line 29) to just ComponentProps<typeof
SomeElementOrComponent> so the import is purely type-only and tree-shakeable.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a6e99af6-047d-4dd0-9601-237835e32e36

📥 Commits

Reviewing files that changed from the base of the PR and between 7e10729 and e1470bd.

⛔ Files ignored due to path filters (2)
  • apps/www/package.json is excluded by none and included by none
  • apps/www/scripts/test-registry-install.ts is excluded by none and included by none
📒 Files selected for processing (9)
  • .github/workflows/ci.yml
  • apps/www/registry/collection/registry-blocks.ts
  • apps/www/registry/default/blocks/basic-player/components/media-player.tsx
  • apps/www/registry/default/blocks/basic-player/components/playback-state-control.tsx
  • apps/www/registry/default/blocks/basic-player/lib/media-kit.ts
  • apps/www/registry/default/blocks/linear-player/components/playback-rate-control.tsx
  • apps/www/registry/default/examples/playback-rate-demo.tsx
  • apps/www/registry/default/ui/playback-rate.tsx
  • apps/www/registry/pro
💤 Files with no reviewable changes (1)
  • apps/www/registry/default/ui/playback-rate.tsx

Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml
Comment thread apps/www/registry/collection/registry-blocks.ts
@WINOFFRG WINOFFRG merged commit 55ae55a into main May 10, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants