Skip to content

ci: add webapp build job to validate frontend on PRs#156

Merged
dev-jodee merged 1 commit into
mainfrom
ci/add-webapp-build-job
Jun 4, 2026
Merged

ci: add webapp build job to validate frontend on PRs#156
dev-jodee merged 1 commit into
mainfrom
ci/add-webapp-build-job

Conversation

@dev-jodee
Copy link
Copy Markdown
Collaborator

Summary

  • Add a webapp-build job to .github/workflows/build.yml that compiles the webapp/ workspace on every PR.
  • Closes a CI coverage gap: webapp/ was never built, typechecked, or tested. Frontend-only dependency bumps (e.g. the current lucide-react dependabot PR) went green without anything compiling the code that uses them.
  • Node-only job (no Rust/Solana toolchain): generates + builds the TS client, then runs tsc -b && vite build for webapp. generate-clients reads the committed IDL, so no cargo build-sbf needed.

Test Plan

Verified the full chain locally on current main:

pnpm install --frozen-lockfile
pnpm run generate-clients
pnpm --filter @solana/subscriptions build
pnpm --filter webapp build   # tsc -b && vite build -> green

After merge, the new webapp-build check should appear and pass on open PRs (including the lucide-react bump).

The webapp/ workspace was never built, typechecked, or tested in CI.
Frontend-only dependency bumps (e.g. lucide-react via dependabot) passed
all checks without anything compiling the code that consumes them.

Add a Node-only webapp-build job: generate + build the TS client, then
run tsc -b and vite build for webapp. No Rust/Solana toolchain needed
since generate-clients reads the committed IDL.
@vercel
Copy link
Copy Markdown

vercel Bot commented Jun 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
solana-subscriptions-program Ready Ready Preview, Comment Jun 4, 2026 1:02pm

Request Review

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 4, 2026

Compute Unit Report

Instruction Samples Min CUs Max CUs Avg CUs Est Cost (Low) [SOL] Est Cost (Med) [SOL] Est Cost (High) [SOL]
cancel_subscription 22 1720 2030 1919 0.000005000 0.000005076 0.000005959
close_subscription_authority 10 1803 1833 1806 0.000005000 0.000005072 0.000005903
create_fixed_delegation 41 3520 11022 4826 0.000005001 0.000005193 0.000007413
create_plan 97 3436 10949 4660 0.000005001 0.000005186 0.000007330
create_recurring_delegation 29 3550 17055 5418 0.000005001 0.000005216 0.000007709
delete_plan 9 359 359 359 0.000005000 0.000005014 0.000005179
init_subscription_authority 173 6226 24095 9499 0.000005002 0.000005379 0.000009749
resume_subscription 3 1723 1723 1723 0.000005000 0.000005068 0.000005861
revoke_delegation 19 255 519 353 0.000005000 0.000005014 0.000005176
subscribe 32 6485 16985 8226 0.000005002 0.000005329 0.000009113
transfer_fixed 9 5479 12103 7531 0.000005002 0.000005301 0.000008765
transfer_recurring 19 5591 10184 6750 0.000005002 0.000005270 0.000008375
transfer_subscription 10 5799 10341 6743 0.000005002 0.000005269 0.000008371
update_plan 22 424 503 477 0.000005000 0.000005019 0.000005238

Generated: 2026-06-04

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Jun 4, 2026

Greptile Summary

This PR adds a webapp-build CI job to .github/workflows/build.yml that validates the React/Vite frontend on every PR. It correctly skips the Rust, Solana, and just toolchains, using only the existing pnpm/Node setup from the shared composite action.

  • Generates the TypeScript client from the committed IDL, builds @solana/subscriptions, then runs tsc -b && vite build for the webapp — closing the gap where frontend-only dependency bumps would pass CI unchecked.
  • The job has no paths filter, so it runs even on pure Rust PRs; a filter on webapp/**, clients/typescript/**, idl/**, and pnpm-lock.yaml would skip the unnecessary Node build for Rust-only changes.

Confidence Score: 4/5

Safe to merge — adds a CI-only job with no production code changes, correctly wired to the shared setup action.

The workflow addition is straightforward and matches the existing job's patterns. The only gap is the missing paths filter, which means the webapp build will run on Rust-only PRs where it adds no value.

.github/workflows/build.yml — worth adding a paths filter to the webapp-build job if CI minutes are a concern.

Important Files Changed

Filename Overview
.github/workflows/build.yml Adds a new webapp-build job that compiles the webapp without Rust/Solana toolchain; correctly delegates pnpm setup to the shared composite action, but lacks a paths filter so it runs on every PR regardless of what changed.

Sequence Diagram

sequenceDiagram
    participant GH as GitHub Actions
    participant Setup as .github/actions/setup
    participant PNPM as pnpm (Node only)
    participant Gen as generate-clients
    participant TsClient as @solana/subscriptions
    participant Webapp as webapp

    GH->>Setup: "checkout@v6 (fetch-depth: 1)"
    GH->>Setup: composite action (install-rust: false, install-solana: false, install-just: false)
    Setup->>PNPM: pnpm install --frozen-lockfile
    GH->>Gen: pnpm run generate-clients (reads committed idl/subscriptions.json)
    Gen-->>TsClient: writes clients/typescript/src/generated/
    GH->>TsClient: "pnpm --filter @solana/subscriptions build"
    TsClient-->>Webapp: "workspace:* dependency resolved"
    GH->>Webapp: "pnpm --filter webapp build (tsc -b && vite build)"
Loading

Reviews (1): Last reviewed commit: "ci: add webapp build job to validate fro..." | Re-trigger Greptile

Comment thread .github/workflows/build.yml
@dev-jodee dev-jodee merged commit 3ddeaac into main Jun 4, 2026
15 checks passed
@dev-jodee dev-jodee deleted the ci/add-webapp-build-job branch June 4, 2026 13:22
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.

1 participant