Skip to content

feat(ci): per-product codeblock testing with shared content resolution#6817

Open
jstirnaman wants to merge 4 commits intoclaude/add-codeblock-ci-tests-jRvG9from
copilot/sub-pr-6810-again
Open

feat(ci): per-product codeblock testing with shared content resolution#6817
jstirnaman wants to merge 4 commits intoclaude/add-codeblock-ci-tests-jRvG9from
copilot/sub-pr-6810-again

Conversation

@jstirnaman
Copy link
Contributor

Summary

  • Add per-product codeblock testing with automatic content detection
  • Make tests informational on PRs (non-blocking), manual execution only
  • Resolve shared content to consuming product pages using shared script

Changes

Workflow updates (.github/workflows/test.yml)

  • PR triggers: Detection-only mode that suggests products to test
  • Manual dispatch: Actually runs tests via workflow_dispatch
  • Product detection: Extracts products from changed file paths
  • Shared content: Resolves content/shared/* files to product pages that source them
  • Default group: influxdb3_core + telegraf when no products specified

New scripts

  • .github/scripts/resolve-shared-content.sh - Resolves shared content to consuming pages (reusable across workflows)

Package.json updates

  • test:codeblocks:default - Run default group (core + telegraf)
  • test:codeblocks:influxdb3_enterprise - Placeholder for enterprise tests
  • test:codeblocks:v1 - Placeholder for v1 tests
  • test:codeblocks:explorer - Placeholder for explorer tests

Test plan

  • Verify workflow triggers on PR with content changes
  • Verify shared content resolution works correctly
  • Test manual dispatch with specific products
  • Test manual dispatch with default group

- Add support for all products: core, enterprise, v2, v1, telegraf,
  cloud, cloud-dedicated, cloud-serverless, clustered, explorer
- Define default test group (core + telegraf) when no product specified
- Exclude cloud products from automatic CI (manual dispatch only)
- Add placeholder scripts for products without pytest services
- Normalize product name handling (core, influxdb3_core, influxdb3-core)
- Log informative messages when excluded products' content changes
- Remove pull_request trigger, keep only workflow_dispatch
- Change all exit codes to 0 so workflow never blocks PRs
- Use warnings instead of errors for failed tests
- Simplify job from detect-changes to parse-inputs
…ution

- PRs now trigger detection-only mode that suggests which products to test
- Actual test execution only runs via manual workflow_dispatch
- Add detect-test-products.js script using existing content-utils library
- Properly resolve shared content to affected product pages
- Non-blocking: PRs won't fail due to codeblock test issues
- Replace Node.js detect-test-products.js with shell-based approach
- Add .github/scripts/resolve-shared-content.sh (from docs-v2-jts-vale-ci)
- Remove Node.js setup step from detect-changes job
- No external dependencies required for shared content resolution
@jstirnaman jstirnaman requested a review from a team as a code owner February 12, 2026 00:25
@jstirnaman jstirnaman requested review from sanderson and removed request for a team February 12, 2026 00:25
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