Skip to content

feat(check-extension): leverage .github/check-extension.json if it ex…#269

Merged
damienwebdev merged 2 commits into
mainfrom
check-extension-config
May 17, 2026
Merged

feat(check-extension): leverage .github/check-extension.json if it ex…#269
damienwebdev merged 2 commits into
mainfrom
check-extension-config

Conversation

@damienwebdev
Copy link
Copy Markdown
Member

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

  • Feature
  • Bugfix
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

check-extension.yaml consumes the caller-supplied inputs.matrix directly. Every matrix-using job (unit-test-extension, compile-extension, integration_test) is wired to the same unfiltered matrix, and integration_test ends up booting every service container the matrix carries — including nginx and php-fpm, neither of which the PHPUnit integration suite ever talks to. There is also no caller-facing way to skip an individual check per project.

Fixes: N/A

What is the new behavior?

  • Adds a compute_resolved orchestration job to check-extension.yaml that calls resolve-check-config@main with kind: extension and matrix: ${{ inputs.matrix }}.
  • unit-test-extension, compile-extension, and integration_test:
    • needs: compute_resolved
    • Gate on fromJSON(needs.compute_resolved.outputs.resolved)['<job>'].enabled != false, so callers can disable a check by adding it to .github/check-extension.json.
    • Pull strategy.matrix from resolved['<job>'].matrix, which already has each entry's services map filtered to the tiers that job needs.
  • coding-standard and compute_latest_matrix are intentionally left alone — they run on a separate latest-version matrix and have no service surface.
  • kinds/extension.ts declares integration_test with requiredServices: ['db', 'search', 'queue', 'cache'] — explicitly excludes the web tier so nginx + php-fpm are never started for integration tests, regardless of caller config.
  • Extension spec coverage extended: integration_test required tiers, the absence of nginx/php-fpm in the filtered matrix, and that the required tiers survive a caller override.
  • docs/workflows/check-extension.md gets a Configuration section documenting .github/check-extension.json with a $schema-referenced JSON example for editor autocompletion / validation.

Does this PR introduce a breaking change?

  • Yes
  • No

check-extension.yaml's public inputs and secrets are unchanged. Callers that don't ship a .github/check-extension.json continue to run all four checks. The integration_test web-tier removal is a behavior improvement (faster, fewer resources) — any caller relying on nginx/php-fpm inside integration_test was already in undefined territory since the PHPUnit suite doesn't drive HTTP.

Other information

  • Builds on the resolve-check-config action already on main (introduced in the prior check-store PR).
  • requiredServices is the floor for a job's tier set: callers can ADD tiers via services: [...], but cannot drop the required ones. This is what makes the integration_test web-tier exclusion enforceable.

@damienwebdev damienwebdev force-pushed the check-extension-config branch from b90534d to 0bf08ef Compare May 17, 2026 23:09
@damienwebdev damienwebdev merged commit 0bf08ef into main May 17, 2026
3 checks passed
@gray-bot gray-bot mentioned this pull request May 17, 2026
@damienwebdev damienwebdev deleted the check-extension-config branch May 18, 2026 14: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