diff --git a/.github/workflows/native-app-locale-refresh.yml b/.github/workflows/native-app-locale-refresh.yml index 7a3e3efa9bcb..17da75045da7 100644 --- a/.github/workflows/native-app-locale-refresh.yml +++ b/.github/workflows/native-app-locale-refresh.yml @@ -16,6 +16,15 @@ on: - apps/.i18n/native/** - apps/.i18n/native-source.json - scripts/control-ui-i18n.ts + - scripts/lib/control-ui-i18n-catalog.ts + - scripts/lib/control-ui-i18n-catalog-values.ts + - ui/src/i18n/lib/config-hint-translation.ts + - ui/src/lib/fnv1a.ts + - src/config/schema*.ts + - src/config/zod-schema*.ts + - src/config/media-audio-field-metadata.ts + - src/config/talk-defaults.ts + - src/config/channel-config-keys.ts - scripts/android-app-i18n.ts - scripts/apple-app-i18n.ts - scripts/native-app-i18n.ts @@ -282,6 +291,15 @@ jobs: apps/macos/Package.swift apps/shared/OpenClawKit/Sources scripts/control-ui-i18n.ts + scripts/lib/control-ui-i18n-catalog.ts + scripts/lib/control-ui-i18n-catalog-values.ts + ui/src/i18n/lib/config-hint-translation.ts + ui/src/lib/fnv1a.ts + src/config/schema*.ts + src/config/zod-schema*.ts + src/config/media-audio-field-metadata.ts + src/config/talk-defaults.ts + src/config/channel-config-keys.ts scripts/android-app-i18n.ts scripts/apple-app-i18n.ts scripts/native-app-i18n.ts diff --git a/test/scripts/ci-workflow-guards.test.ts b/test/scripts/ci-workflow-guards.test.ts index 05d065480178..757c427fbe34 100644 --- a/test/scripts/ci-workflow-guards.test.ts +++ b/test/scripts/ci-workflow-guards.test.ts @@ -3080,14 +3080,33 @@ NODE const controlUiPublishStep = controlUiFinalize.steps.find( (step: { name?: string }) => step.name === "Open or update generated locale PR", ); + const sharedCatalogInputs = [ + "scripts/lib/control-ui-i18n-catalog.ts", + "scripts/lib/control-ui-i18n-catalog-values.ts", + "ui/src/i18n/lib/config-hint-translation.ts", + "ui/src/lib/fnv1a.ts", + "src/config/schema*.ts", + "src/config/zod-schema*.ts", + "src/config/media-audio-field-metadata.ts", + "src/config/talk-defaults.ts", + "src/config/channel-config-keys.ts", + ]; + const sharedCatalogInputOwners = [ + workflow.on.push.paths, + nativePublishStep.with["invalidation-paths"].trim().split("\n"), + controlUiWorkflow.on.push.paths, + controlUiPublishStep.with["invalidation-paths"].trim().split("\n"), + ]; + for (const catalogInput of sharedCatalogInputs) { + for (const ownerPaths of sharedCatalogInputOwners) { + expect(ownerPaths).toContain(catalogInput); + } + } expect(controlUiPublishStep.with["generated-paths"].trim().split("\n")).toEqual([ "ui/src/i18n/.i18n/*.tm.jsonl", "ui/src/i18n/.i18n/*.meta.json", "ui/src/i18n/.i18n/catalog-fallbacks.json", ]); - expect(controlUiPublishStep.with["invalidation-paths"]).toContain( - "scripts/lib/control-ui-i18n-catalog.ts", - ); expect(controlUiPublishStep.with["invalidation-paths"]).toContain( "scripts/lib/control-ui-i18n-sync-plan.ts", );