diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fa4d0b3b1b0..f40272241b3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -753,6 +753,11 @@ jobs: continue-on-error: true run: pnpm run lint:extensions:bundled + - name: Run extension package boundary TypeScript check + id: extension_package_boundary_tsc + continue-on-error: true + run: pnpm run test:extensions:package-boundary + - name: Enforce safe external URL opening policy id: no_raw_window_open continue-on-error: true @@ -797,6 +802,7 @@ jobs: EXTENSION_RELATIVE_OUTSIDE_PACKAGE_BOUNDARY_OUTCOME: ${{ steps.extension_relative_outside_package_boundary.outcome }} EXTENSION_CHANNEL_LINT_OUTCOME: ${{ steps.extension_channel_lint.outcome }} EXTENSION_BUNDLED_LINT_OUTCOME: ${{ steps.extension_bundled_lint.outcome }} + EXTENSION_PACKAGE_BOUNDARY_TSC_OUTCOME: ${{ steps.extension_package_boundary_tsc.outcome }} NO_RAW_WINDOW_OPEN_OUTCOME: ${{ steps.no_raw_window_open.outcome }} CONTROL_UI_I18N_OUTCOME: ${{ steps.control_ui_i18n.outcome == 'skipped' && 'success' || steps.control_ui_i18n.outcome }} GATEWAY_WATCH_REGRESSION_OUTCOME: ${{ steps.gateway_watch_regression.outcome }} @@ -820,6 +826,7 @@ jobs: "extension-relative-outside-package-boundary|$EXTENSION_RELATIVE_OUTSIDE_PACKAGE_BOUNDARY_OUTCOME" \ "lint:extensions:channels|$EXTENSION_CHANNEL_LINT_OUTCOME" \ "lint:extensions:bundled|$EXTENSION_BUNDLED_LINT_OUTCOME" \ + "test:extensions:package-boundary|$EXTENSION_PACKAGE_BOUNDARY_TSC_OUTCOME" \ "lint:ui:no-raw-window-open|$NO_RAW_WINDOW_OPEN_OUTCOME" \ "ui:i18n:check|$CONTROL_UI_I18N_OUTCOME" \ "gateway-watch-regression|$GATEWAY_WATCH_REGRESSION_OUTCOME"; do diff --git a/package.json b/package.json index ad08a39a116..671e589e0b4 100644 --- a/package.json +++ b/package.json @@ -1212,6 +1212,8 @@ "test:extensions:batch": "node scripts/test-extension-batch.mjs", "test:extensions:memory": "node scripts/profile-extension-memory.mjs", "test:extensions:package-boundary": "node scripts/check-extension-package-tsc-boundary.mjs", + "test:extensions:package-boundary:canary": "node scripts/check-extension-package-tsc-boundary.mjs --mode=canary", + "test:extensions:package-boundary:compile": "node scripts/check-extension-package-tsc-boundary.mjs --mode=compile", "test:fast": "node scripts/run-vitest.mjs run --config vitest.unit.config.ts", "test:force": "node --import tsx scripts/test-force.ts", "test:gateway": "node scripts/run-vitest.mjs run --config vitest.gateway.config.ts",