3232 cockpit_e2e : ${{ steps.scope.outputs.cockpit_e2e }}
3333 website_e2e : ${{ steps.scope.outputs.website_e2e }}
3434 posthog : ${{ steps.scope.outputs.posthog }}
35+ scripts_tests : ${{ steps.scope.outputs.scripts_tests }}
3536 steps :
3637 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3738 with :
7778 - name : Validate CI workflow guards
7879 run : node --test scripts/ci-workflow.spec.mjs
7980
81+ scripts-tests :
82+ name : Scripts — generator / proxy vitest suites
83+ needs : ci-scope
84+ if : github.event_name == 'push' || needs.ci-scope.outputs.scripts_tests == 'true'
85+ runs-on : ubuntu-latest
86+ steps :
87+ - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
88+ - uses : actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
89+ with :
90+ node-version : 22
91+ cache : npm
92+ - run : npm ci
93+ # Vitest suites for the root deployment/proxy generators (drift checks,
94+ # framework-adapter branching, requirements unions, rate limits). The
95+ # node:test suites in scripts/ run in ci-scope and library instead —
96+ # see scripts/vite.config.mts for the split.
97+ - run : npx nx test scripts
98+
8099 library :
81100 name : Library — lint / test / build
82101 needs : ci-scope
@@ -543,6 +562,7 @@ jobs:
543562 - cockpit-e2e-summary
544563 - website-e2e
545564 - posthog-sync-plan
565+ - scripts-tests
546566 if : ${{ always() && github.event_name == 'pull_request' }}
547567 runs-on : ubuntu-latest
548568 steps :
@@ -561,6 +581,7 @@ jobs:
561581 RESULT_COCKPIT_E2E : ${{ needs.cockpit-e2e-summary.result }}
562582 RESULT_WEBSITE_E2E : ${{ needs.website-e2e.result }}
563583 RESULT_POSTHOG : ${{ needs.posthog-sync-plan.result }}
584+ RESULT_SCRIPTS_TESTS : ${{ needs.scripts-tests.result }}
564585 SCOPE_LIBRARY : ${{ needs.ci-scope.outputs.library }}
565586 SCOPE_ANGULAR_COMPATIBILITY : ${{ needs.ci-scope.outputs.angular_compatibility }}
566587 SCOPE_WEBSITE : ${{ needs.ci-scope.outputs.website }}
@@ -572,6 +593,7 @@ jobs:
572593 SCOPE_COCKPIT_E2E : ${{ needs.ci-scope.outputs.cockpit_e2e }}
573594 SCOPE_WEBSITE_E2E : ${{ needs.ci-scope.outputs.website_e2e }}
574595 SCOPE_POSTHOG : ${{ needs.ci-scope.outputs.posthog }}
596+ SCOPE_SCRIPTS_TESTS : ${{ needs.ci-scope.outputs.scripts_tests }}
575597 run : |
576598 set -euo pipefail
577599
@@ -624,6 +646,7 @@ jobs:
624646 require_scoped "cockpit_e2e" "Cockpit — e2e" "$RESULT_COCKPIT_E2E" "$SCOPE_COCKPIT_E2E"
625647 require_scoped "website_e2e" "Website — e2e" "$RESULT_WEBSITE_E2E" "$SCOPE_WEBSITE_E2E"
626648 require_scoped "posthog" "PostHog — dashboards-as-code drift check" "$RESULT_POSTHOG" "$SCOPE_POSTHOG"
649+ require_scoped "scripts_tests" "Scripts — generator / proxy vitest suites" "$RESULT_SCRIPTS_TESTS" "$SCOPE_SCRIPTS_TESTS"
627650
628651 if [[ "$failed" -ne 0 ]]; then
629652 exit 1
0 commit comments