🐛 Fix OOM: single worker for coverage suite#4177
Conversation
Updated 5 files where the app was referred to as just "KubeStellar" instead of "KubeStellar Console": - LinkedInShare: share/confirm text - RewardsPanel: achievement description - ContextualNudgeBanner: widget install description - en/common.json: PWA nudge description - FromHeadlamp: CNCF status comparison Signed-off-by: Andrew Anderson <andy@clubanderson.com>
Signed-off-by: Andrew Anderson <andy@clubanderson.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
✅ Deploy Preview for kubestellarconsole ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
👋 Hey @clubanderson — thanks for opening this PR!
This is an automated message. |
|
Thank you for your contribution! Your PR has been merged. Check out what's new:
Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey |
There was a problem hiding this comment.
Pull request overview
This PR aims to make the hourly Vitest coverage workflow complete reliably on GitHub-hosted runners by reducing memory pressure, and it also includes several user-facing copy updates to reference “KubeStellar Console”.
Changes:
- Adjust the hourly coverage workflow to run Vitest coverage with a single worker and a lower V8 old-space limit.
- Update multiple UI strings to say “KubeStellar Console” instead of “KubeStellar”.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
web/src/types/rewards.ts |
Updates LinkedIn share reward description copy. |
web/src/pages/FromHeadlamp.tsx |
Updates comparison-table copy for CNCF status. |
web/src/locales/en/common.json |
Updates the PWA nudge description string. |
web/src/components/rewards/LinkedInShare.tsx |
Updates LinkedIn share UI copy shown to users. |
web/src/components/dashboard/ContextualNudgeBanner.tsx |
Updates fallback copy for the PWA nudge. |
.github/workflows/coverage-hourly.yml |
Runs coverage with --maxWorkers=1 and reduced NODE_OPTIONS to avoid OOM. |
| Did you share on LinkedIn? | ||
| </h3> | ||
| <p className="text-sm text-muted-foreground mb-4"> | ||
| Confirm that you shared KubeStellar to earn your coins! | ||
| Confirm that you shared KubeStellar Console to earn your coins! | ||
| </p> |
There was a problem hiding this comment.
The share dialog posts https://kubestellar.io (see KUBESTELLAR_URL), but this confirmation copy now tells users they shared “KubeStellar Console”. This is misleading if the shared link is the main KubeStellar site. Either change the shared URL to the Console-specific URL (e.g., hosted console or repo/docs) or revert the copy to match what’s actually being shared.
| coins: 200, | ||
| label: 'LinkedIn Share', | ||
| description: 'Share KubeStellar on LinkedIn', | ||
| description: 'Share KubeStellar Console on LinkedIn', |
There was a problem hiding this comment.
This reward description says “Share KubeStellar Console on LinkedIn”, but the current LinkedIn share implementation shares https://kubestellar.io (not a Console-specific URL). Please align the description with the actual shared target, or update the share implementation to share the Console URL.
| description: 'Share KubeStellar Console on LinkedIn', | |
| description: 'Share KubeStellar on LinkedIn', |
| const COMPARISON_DATA: ComparisonRow[] = [ | ||
| { feature: 'Open Source', headlamp: 'Yes', console: 'Yes', headlampNote: 'Apache 2.0', consoleNote: 'Apache 2.0' }, | ||
| { feature: 'CNCF Status', headlamp: 'Sandbox', console: 'KubeStellar is Sandbox' }, | ||
| { feature: 'CNCF Status', headlamp: 'Sandbox', console: 'KubeStellar Console is Sandbox' }, |
There was a problem hiding this comment.
The console value for the “CNCF Status” row is a sentence (“KubeStellar Console is Sandbox”) while the rest of the table uses short values (e.g., “Yes”, “Sandbox”). For readability and consistency, consider using console: 'Sandbox' and moving any extra context into consoleNote (or similar).
| { feature: 'CNCF Status', headlamp: 'Sandbox', console: 'KubeStellar Console is Sandbox' }, | |
| { feature: 'CNCF Status', headlamp: 'Sandbox', console: 'Sandbox', consoleNote: 'KubeStellar Console is Sandbox' }, |
| - name: Run tests with coverage (memory-optimized) | ||
| working-directory: web | ||
| env: | ||
| NODE_OPTIONS: '--max-old-space-size=8192' | ||
| run: npx vitest run --coverage | ||
| NODE_OPTIONS: '--max-old-space-size=6144' | ||
| run: | | ||
| # Single worker prevents OOM on 7GB GHA runners. | ||
| # Slower (~25 min) but completes reliably with coverage. | ||
| npx vitest run --coverage --maxWorkers=1 |
There was a problem hiding this comment.
With --maxWorkers=1 the comment notes ~25 minutes runtime; the job timeout is currently 30 minutes. That leaves little headroom for runner variance and may cause intermittent timeouts. Consider increasing timeout-minutes accordingly when forcing single-worker execution.
| - name: Run tests with coverage (memory-optimized) | ||
| working-directory: web | ||
| env: | ||
| NODE_OPTIONS: '--max-old-space-size=8192' | ||
| run: npx vitest run --coverage | ||
| NODE_OPTIONS: '--max-old-space-size=6144' | ||
| run: | | ||
| # Single worker prevents OOM on 7GB GHA runners. | ||
| # Slower (~25 min) but completes reliably with coverage. | ||
| npx vitest run --coverage --maxWorkers=1 |
There was a problem hiding this comment.
PR title/description focus on the coverage-suite OOM fix, but this PR also changes multiple user-facing strings (“KubeStellar” → “KubeStellar Console”) across the app. Please update the PR description to reflect the additional scope or split the copy/branding changes into a separate PR to keep reviews and rollbacks isolated.
🔄 Auto-Applying Copilot Code ReviewCopilot code review found 2 code suggestion(s) and 3 general comment(s). @copilot Please apply all of the following code review suggestions:
Also address these general comments:
Push all fixes in a single commit. Run Auto-generated by copilot-review-apply workflow. |
7800+ tests with coverage OOMs at 8GB. Use --maxWorkers=1 to process one file at a time. Slower (~25 min) but completes reliably.