Skip to content

🐛 Fix OOM: single worker for coverage suite#4177

Merged
clubanderson merged 2 commits intomainfrom
fix/coverage-split
Apr 1, 2026
Merged

🐛 Fix OOM: single worker for coverage suite#4177
clubanderson merged 2 commits intomainfrom
fix/coverage-split

Conversation

@clubanderson
Copy link
Copy Markdown
Collaborator

7800+ tests with coverage OOMs at 8GB. Use --maxWorkers=1 to process one file at a time. Slower (~25 min) but completes reliably.

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>
Copilot AI review requested due to automatic review settings April 1, 2026 15:16
@kubestellar-prow kubestellar-prow bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Apr 1, 2026
@kubestellar-prow
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign mikespreitzer for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 1, 2026

Deploy Preview for kubestellarconsole ready!

Name Link
🔨 Latest commit 6bc6636
🔍 Latest deploy log https://app.netlify.com/projects/kubestellarconsole/deploys/69cd36bba7d38600089274ae
😎 Deploy Preview https://deploy-preview-4177.console-deploy-preview.kubestellar.io
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@kubestellar-prow kubestellar-prow bot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Apr 1, 2026
@clubanderson clubanderson merged commit 35abf8d into main Apr 1, 2026
19 of 20 checks passed
@kubestellar-prow kubestellar-prow bot deleted the fix/coverage-split branch April 1, 2026 15:16
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 1, 2026

👋 Hey @clubanderson — thanks for opening this PR!

🤖 This project is developed exclusively using AI coding assistants.

Please do not attempt to code anything for this project manually.
All contributions should be authored using an AI coding tool such as:

This ensures consistency in code style, architecture patterns, test coverage,
and commit quality across the entire codebase.


This is an automated message.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 1, 2026

Thank you for your contribution! Your PR has been merged.

Check out what's new:

Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey

Copy link
Copy Markdown
Contributor

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

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.

Comment on lines 75 to 79
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>
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
coins: 200,
label: 'LinkedIn Share',
description: 'Share KubeStellar on LinkedIn',
description: 'Share KubeStellar Console on LinkedIn',
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

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

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.

Suggested change
description: 'Share KubeStellar Console on LinkedIn',
description: 'Share KubeStellar on LinkedIn',

Copilot uses AI. Check for mistakes.
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' },
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

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

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).

Suggested change
{ feature: 'CNCF Status', headlamp: 'Sandbox', console: 'KubeStellar Console is Sandbox' },
{ feature: 'CNCF Status', headlamp: 'Sandbox', console: 'Sandbox', consoleNote: 'KubeStellar Console is Sandbox' },

Copilot uses AI. Check for mistakes.
Comment on lines +39 to +46
- 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
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
Comment on lines +39 to +46
- 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
Copy link

Copilot AI Apr 1, 2026

Choose a reason for hiding this comment

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

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.

Copilot uses AI. Check for mistakes.
@clubanderson
Copy link
Copy Markdown
Collaborator Author

🔄 Auto-Applying Copilot Code Review

Copilot code review found 2 code suggestion(s) and 3 general comment(s).

@copilot Please apply all of the following code review suggestions:

  • web/src/types/rewards.ts (line 76): description: 'Share KubeStellar on LinkedIn',
  • web/src/pages/FromHeadlamp.tsx (line 52): { feature: 'CNCF Status', headlamp: 'Sandbox', console: 'Sandbox', consoleNote: ...

Also address these general comments:

  • web/src/components/rewards/LinkedInShare.tsx (line 79): The share dialog posts https://kubestellar.io (see KUBESTELLAR_URL), but this confirmation copy now tells users they
  • .github/workflows/coverage-hourly.yml (line 46): With --maxWorkers=1 the comment notes ~25 minutes runtime; the job timeout is currently 30 minutes. That leaves little
  • .github/workflows/coverage-hourly.yml (line 46): PR title/description focus on the coverage-suite OOM fix, but this PR also changes multiple user-facing strings (“KubeSt

Push all fixes in a single commit. Run cd web && npm run build && npm run lint before committing.


Auto-generated by copilot-review-apply workflow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dco-signoff: yes Indicates the PR's author has signed the DCO. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants