Skip to content

ci(api): run novu-v2-ce e2e suite on fork PRs fixes NV-8154#11749

Merged
scopsy merged 3 commits into
nextfrom
cursor/fork-pr-v2-ce-e2e-4d4c
Jul 1, 2026
Merged

ci(api): run novu-v2-ce e2e suite on fork PRs fixes NV-8154#11749
scopsy merged 3 commits into
nextfrom
cursor/fork-pr-v2-ce-e2e-4d4c

Conversation

@scopsy

@scopsy scopsy commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Fork PRs from community contributors cannot access the enterprise submodule, so they previously fell back to the legacy Novu V0 e2e suite. This change runs the Novu V2 CE suite instead, giving fork PRs meaningful coverage of current v2 API behavior.

Changes

  • Add test:e2e:novu-v2-ce npm script using the shared run-novu-v2-e2e-shard.cjs runner with NOVU_V2_CE_ONLY=true
  • CE mode runs #novu-v2 tests from src/ only — excludes *.e2e-ee.ts and e2e/enterprise/
  • 9 EE-only test files additionally excluded when CI_EE_TEST=false (SSRF pinning, Stripe billing, RBAC, translations, novu-app MCP, custom environments, org branding settings)
  • Runs with CI_EE_TEST=false and CLERK_ENABLED=true (agents suite included)
  • Fork PRs use 4 shards (same as EE), replacing the single-shard v0 run

Excluded files (CE fork PRs)

File Reason
active-conversations.e2e.ts Stripe billing period metering
agent-mcp-servers.e2e.ts novu-app MCP LaunchDarkly gate
permissions.guard.e2e.ts EE RBAC permissions guard
sync.e2e.ts Outbound SSRF pinning
trigger-event-ssrf.e2e.ts Outbound SSRF pinning
test-http-endpoint.e2e.ts Outbound SSRF validation
environments-v2-diff.e2e.ts EE translations API
api-key-environments-exposure.e2e.ts Custom environment creation (BUSINESS tier)
update-organization-settings.e2e.ts EE org branding settings route

~126 CE test files remain across 4 shards.

Flow

flowchart TD
  PR[PR opened] --> Fork{Fork PR?}
  Fork -->|Yes| CE[test:e2e:novu-v2-ce\n4 shards · CI_EE_TEST=false]
  Fork -->|No| EE[test:e2e:novu-v2\n4 shards · submodule · CI_EE_TEST=true]
Loading

Notes

  • Losing v0 coverage on fork PRs is intentional.
  • The test:e2e:novu-v0 script is left in place but no longer invoked by CI.
  • S3-dependent tests (e.g. attachment uploads) require LocalStack, which CI starts via start-localstack.
Open in Web Open in Cursor 

Greptile Summary

This PR switches fork PR API E2E coverage from the legacy Novu V0 suite to Novu V2 CE. The main changes are:

  • Adds a test:e2e:novu-v2-ce package script with CE-only environment flags.
  • Runs fork PR E2E jobs across the same four shards as the EE suite.
  • Updates the shared V2 shard runner to scan CE test files from src/ only.
  • Excludes known EE-only mixed test files from the CE run.

Confidence Score: 5/5

The workflow and shard-runner changes are targeted to CI test selection for forked API E2E runs and do not alter runtime product behavior.

The changed files are limited in scope, and the test filtering behavior is explicitly described for CE fork runs with known enterprise-only exclusions.

T-Rex T-Rex Logs

What T-Rex did

  • Inspected the fork suite selection artifacts to verify the CI matrix changed from a single non-EE shard (1/1) to a four-shard matrix and NOVU_V2 CE selection.
  • Checked the CE runner filtering outputs to confirm the base run included EE path candidates and that the after run shows all CE filtering contracts PASS.
  • Reviewed the four-shards workflow evidence showing a four-shard matrix with per-shard file counts and that each shard runs Novu V2 CE E2E; the before state shows Run Novu V1 E2E tests.

View all artifacts

T-Rex Ran code and verified through T-Rex

Reviews (3): Last reviewed commit: "ci(api): exclude EE-only tests from novu..." | Re-trigger Greptile

Replace the legacy novu-v0 e2e suite for fork PRs with a community
edition novu-v2 subset. The new test:e2e:novu-v2-ce script runs
#novu-v2 tests from src/ only (excluding *.e2e-ee.ts and
e2e/enterprise/) with CI_EE_TEST=false across 4 shards.

Co-authored-by: Dima Grossman <dima@grossman.io>
@linear-code

linear-code Bot commented Jul 1, 2026

Copy link
Copy Markdown

NV-8154

@netlify

netlify Bot commented Jul 1, 2026

Copy link
Copy Markdown

Deploy Preview for dashboard-v2-novu-staging canceled.

Name Link
🔨 Latest commit ca31af2
🔍 Latest deploy log https://app.netlify.com/projects/dashboard-v2-novu-staging/deploys/6a44acfd3994df0008a8c684

@greptile-apps

greptile-apps Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

T-Rex pricing update — T-Rex was free through June 2026. Effective July 1, 2026, T-Rex adds 2 credits on top of the standard 1-credit review (3 total). T-Rex settings

@scopsy scopsy marked this pull request as ready for review July 1, 2026 05:04
Add NOVU_V2_CE_ONLY / --ce-only to the existing shard script instead of
maintaining a duplicate runner. CE mode limits discovery to src/**/*.e2e.ts.

Co-authored-by: Dima Grossman <dima@grossman.io>
Skip files that depend on cloud-EE behavior unavailable when
CI_EE_TEST=false: SSRF pinning, Stripe billing, RBAC, translations,
novu-app MCP, custom environments, and org branding settings.

Co-authored-by: Dima Grossman <dima@grossman.io>
@scopsy scopsy merged commit f3a9632 into next Jul 1, 2026
36 checks passed
@scopsy scopsy deleted the cursor/fork-pr-v2-ce-e2e-4d4c branch July 1, 2026 07:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants