354 lines
9.7 KiB
YAML
354 lines
9.7 KiB
YAML
# Catch-all filter — emits the full changed-files list as `all_changed_files`
|
|
# so create-test-plan in run-tests.yml can reuse dorny's diff.
|
|
all_changed:
|
|
- "**"
|
|
|
|
default: &default
|
|
- "locales/**"
|
|
- "bin/**/!(*.md)"
|
|
|
|
workflows:
|
|
- added|modified: ".github/workflows/*.{yml,yaml}"
|
|
|
|
shared_sources: &shared_sources
|
|
- "src/**/*.cljc"
|
|
- "src/**/*.cljs"
|
|
- "package.json"
|
|
|
|
shared_specs: &shared_specs
|
|
- "test/**/*.cljc"
|
|
- "test/**/*.cljs"
|
|
|
|
shared_ci: &shared_ci
|
|
- ".github/actions/prepare-frontend/**"
|
|
- ".github/actions/prepare-backend/**"
|
|
- ".github/workflows/run-tests.yml"
|
|
|
|
shared_e2e: &shared_e2e
|
|
- "e2e/runner/**"
|
|
- "e2e/snapshot-creators/**"
|
|
- "e2e/support/**"
|
|
|
|
frontend_ci: &frontend_ci
|
|
- *shared_ci
|
|
- ".github/workflows/frontend.yml"
|
|
|
|
frontend_configs: &frontend_configs
|
|
- "bun.lock"
|
|
- "**/tsconfig*.json"
|
|
- "package.json"
|
|
- "babel.config.json"
|
|
- "eslint.config.mjs"
|
|
- "postcss.config.js"
|
|
- "rspack.config.js"
|
|
- "rspack.main.config.js"
|
|
- "rspack.embedding-sdk-package.config.js"
|
|
- "rspack.embedding-sdk-bundle.config.js"
|
|
- "rspack.static-viz.config.js"
|
|
- ".nvmrc"
|
|
|
|
frontend_sources: &frontend_sources
|
|
- *shared_sources
|
|
- *frontend_configs
|
|
- "enterprise/frontend/!(test)**/**/{!(*.spec),}.{js,jsx,ts,tsx,css}"
|
|
- "frontend/!(test)**/**/{!(*.spec),}.{js,jsx,ts,tsx,css}"
|
|
|
|
# Used only in .github/workflows/embedding-sdk-labels-reminder.yml
|
|
frontend_embedding_sdk_package_sources:
|
|
- "enterprise/frontend/src/embedding-sdk-package/**/!(*.spec).{js,jsx,ts,tsx,css}"
|
|
|
|
frontend_specs: &frontend_specs
|
|
- *shared_specs
|
|
- "frontend/test/**"
|
|
- "frontend/**/tests/**"
|
|
- "frontend/**/*.unit.*"
|
|
- "enterprise/frontend/**/*.unit.*"
|
|
- "jest.config.js"
|
|
- "jest.base.conf.js"
|
|
- "jest.esm-packages.js"
|
|
- "jest.tz.unit.conf.js"
|
|
|
|
release_source: &release_sources
|
|
- "release/**"
|
|
|
|
frontend_all: &frontend_all
|
|
- *frontend_ci
|
|
- *frontend_sources
|
|
- *frontend_specs
|
|
|
|
frontend_loki_ci: &frontend_loki_ci
|
|
- ".github/workflows/loki.yml"
|
|
- "loki.config.js"
|
|
- ".loki/**"
|
|
- ".storybook/**"
|
|
|
|
frontend_unit_infra: &frontend_unit_infra
|
|
- *frontend_configs
|
|
- *frontend_ci
|
|
- "jest.config.js"
|
|
- "jest.base.conf.js"
|
|
- "jest.esm-packages.js"
|
|
- "jest.tz.unit.conf.js"
|
|
- "frontend/test/**"
|
|
- "frontend/**/__mocks__/**"
|
|
- "frontend/src/embedding-sdk-shared/jest/**"
|
|
|
|
frontend_loki_infra: &frontend_loki_infra
|
|
- *frontend_configs
|
|
- *shared_ci
|
|
- *frontend_loki_ci
|
|
- "frontend/build/shared/**"
|
|
- "frontend/test/__support__/**"
|
|
- "patches/**"
|
|
# dependency-cruiser doesn't follow CSS @import, so global styles must run every story.
|
|
- "frontend/src/metabase/css/**/*.css"
|
|
# Storybook serves resources/frontend_client as static files, and the stories bundle the app's SVGs.
|
|
- "resources/frontend_client/**"
|
|
- "frontend/**/*.svg"
|
|
- "enterprise/frontend/**/*.svg"
|
|
|
|
frontend_loki_all:
|
|
- *frontend_sources
|
|
- *frontend_loki_infra
|
|
|
|
# Everything the ci-scripts jest project runs or depends on.
|
|
# test-unit ignores that project, so this filter is the only thing that reruns it.
|
|
ci_scripts:
|
|
- *frontend_ci
|
|
- ".nvmrc"
|
|
# file-paths.unit.spec.ts asserts what this file's own patterns match, so a change to it has to
|
|
# run the specs that guard it.
|
|
- ".github/file-paths.yaml"
|
|
- ".github/scripts/**"
|
|
- ".github/actions/**"
|
|
- ".github/workflows/loki.yml"
|
|
- ".storybook/story-files.cjs"
|
|
- "frontend/lint/module-boundaries.mjs"
|
|
- "frontend/lint/shared-tiers.mjs"
|
|
- "frontend/test/jest-test-paths-filter.ts"
|
|
- ".dependency-cruiser.cjs"
|
|
- "jest.config.js"
|
|
- "jest.base.conf.js"
|
|
- "jest.esm-packages.js"
|
|
- "package.json"
|
|
- "bun.lock"
|
|
|
|
# e2e harness/support code (commands, support file, runner). Not in the
|
|
# instrumented bundle, so it maps to no covered module — a change here forces a
|
|
# full e2e run (see create-test-plan / e2eInfraTouched).
|
|
e2e_infra: &e2e_infra
|
|
- *shared_e2e
|
|
|
|
backend_ci: &backend_ci
|
|
- *shared_ci
|
|
- ".github/actions/test-driver/**"
|
|
- ".github/workflows/backend.yml"
|
|
- ".github/workflows/drivers.yml"
|
|
|
|
backend_sources: &backend_sources
|
|
- *shared_sources
|
|
- "**deps.edn"
|
|
- "enterprise/backend/src/**"
|
|
- "src/**"
|
|
- "modules/drivers/{*,*/{*,!(test)/**}}"
|
|
- "resources/**"
|
|
# Ratchet files drive project_ratchet_checks alone, so automation PRs that lower budgets
|
|
# run the Project tests job by themselves. Patterns are OR-ed, so a separate "!..." entry would match
|
|
# every other path instead of excluding this one.
|
|
- ".clj-kondo/**/!(ratchets.edn)"
|
|
|
|
backend_specs: &backend_specs
|
|
- *shared_specs
|
|
- "test/**"
|
|
- "dev/test/**"
|
|
- "enterprise/backend/test/**"
|
|
- "test_modules/**"
|
|
- "modules/drivers/*/test/**"
|
|
- "test_config/**"
|
|
- "test_resources/**"
|
|
|
|
backend_all: &backend_all
|
|
- *default
|
|
- *backend_ci
|
|
- *backend_sources
|
|
- *backend_specs
|
|
|
|
# Project checks have narrower triggers than the backend matrix.
|
|
# Changes to their shared CI entry points exercise every suite; otherwise each
|
|
# suite follows only the files that can affect its result.
|
|
project_tests_infra: &project_tests_infra
|
|
- ".github/actions/prepare-backend/**"
|
|
- ".github/file-paths.yaml"
|
|
- ".github/workflows/backend.yml"
|
|
- ".github/workflows/run-tests.yml"
|
|
- "bb.edn"
|
|
- "bin/mage"
|
|
- "bin/mage.bb"
|
|
- "mage/src/mage/color.clj"
|
|
- "mage/src/mage/project_tests.clj"
|
|
- "mage/src/mage/shell.clj"
|
|
- "mage/src/mage/util.clj"
|
|
|
|
project_backend_checks:
|
|
- *project_tests_infra
|
|
- "{src,test,enterprise,dev,bin,mage}/**/*.{clj,cljc,cljs}"
|
|
- "modules/**/*.clj"
|
|
- "modules/**/*.cljc"
|
|
- "modules/**/*.cljs"
|
|
- "**deps.edn"
|
|
- ".clj-kondo/{src,test}/**/*.{clj,cljc,cljs}"
|
|
- "{resources,test_resources,test_config}/**/*.{clj,cljc,cljs}"
|
|
- ".clj-kondo/config.edn"
|
|
- ".clj-kondo/config/modules/config.edn"
|
|
- ".github/team.json"
|
|
- "dev/resources/dev/modules_config_test/**"
|
|
|
|
# Only the ratchet check reads the budgets, so a diff that touches nothing else runs that suite alone.
|
|
project_ratchet_checks:
|
|
- ".clj-kondo/ratchets.edn"
|
|
- ".clj-kondo/config/modules/ratchets.edn"
|
|
|
|
project_migration_checks:
|
|
- *project_tests_infra
|
|
- "bin/lint-migrations-file/**"
|
|
- "resources/migrations/**/*.{yaml,yml}"
|
|
- "src/metabase/app_db/custom_migrations.clj"
|
|
- "src/metabase/app_db/custom_migrations/**"
|
|
|
|
sources: &sources
|
|
- *shared_sources
|
|
- *frontend_sources
|
|
- *backend_sources
|
|
|
|
custom_viz_all:
|
|
- ".github/workflows/run-tests.yml"
|
|
- ".github/workflows/frontend.yml"
|
|
- ".github/actions/prepare-node-bun/**"
|
|
- "enterprise/frontend/src/custom-viz/**"
|
|
|
|
e2e_ci: &e2e_ci
|
|
- *shared_ci
|
|
- ".github/workflows/uberjar.yml"
|
|
- ".github/actions/fetch-artifact/action.yml"
|
|
- ".github/actions/e2e-prepare-containers/**"
|
|
- ".github/actions/prepare-cypress/**"
|
|
- ".github/workflows/e2e-*"
|
|
|
|
e2e_specs: &e2e_specs
|
|
- e2e/!(test-host-app)**/*.cy.*.{js,ts}
|
|
|
|
embedding_sdk_ci: &embedding_sdk_ci
|
|
- *shared_ci
|
|
- ".github/workflows/uberjar.yml"
|
|
- ".github/actions/fetch-artifact/action.yml"
|
|
- ".github/actions/prepare-cypress/**"
|
|
- ".github/workflows/embedding-sdk*.yml"
|
|
|
|
embedding_sdk_components:
|
|
- *default
|
|
- *embedding_sdk_ci
|
|
- *sources
|
|
- *shared_e2e
|
|
- "e2e/test-component/**/*.cy.*.{js,jsx,ts,tsx}"
|
|
|
|
embedding_sdk_host_sample_apps:
|
|
- *default
|
|
- *embedding_sdk_ci
|
|
- *frontend_sources
|
|
- *backend_sources
|
|
- *shared_e2e
|
|
- "e2e/embedding-sdk-host-apps/**"
|
|
- "e2e/test-host-app/**/*.cy.*.{js,ts}"
|
|
|
|
snowplow: &snowplow
|
|
- ".github/workflows/lint.yml"
|
|
- "snowplow/**"
|
|
- "bin/lint-snowplow-schemas.bb"
|
|
- "bin/lint-snowplow-schemas-test.bb"
|
|
|
|
e2e_all:
|
|
- *default
|
|
- *e2e_ci
|
|
- *sources
|
|
- *e2e_specs
|
|
- "e2e/**"
|
|
- *snowplow
|
|
|
|
documentation:
|
|
- "docs/**"
|
|
- "**/*.md"
|
|
|
|
docs:
|
|
- "docs/**"
|
|
|
|
embedding_documentation:
|
|
- ".typedoc/**"
|
|
- "docs/embedding/**"
|
|
|
|
yaml:
|
|
- "**/*.yml"
|
|
- "**/*.yaml"
|
|
|
|
codeql:
|
|
- ".github/workflows/lint.yml"
|
|
- "frontend/src/**"
|
|
- "enterprise/frontend/src/**"
|
|
|
|
i18n:
|
|
- *default
|
|
- ".github/actions/prepare-frontend/**"
|
|
- ".github/actions/prepare-backend/**"
|
|
- ".github/workflows/lint.yml"
|
|
- *sources
|
|
|
|
cljs:
|
|
- *shared_sources
|
|
- *shared_specs
|
|
- ".github/workflows/cljs.yml"
|
|
- "shadow-cljs.edn"
|
|
|
|
build_scripts:
|
|
- ".github/actions/prepare-backend/**"
|
|
- ".github/file-paths.yaml"
|
|
- ".github/workflows/build-scripts.yml"
|
|
- "bin/**"
|
|
- "deps.edn"
|
|
|
|
embedder_plugin:
|
|
- ".github/actions/prepare-backend/**"
|
|
- ".github/file-paths.yaml"
|
|
- ".github/workflows/build-scripts.yml"
|
|
- "bin/build-embedder-plugin.sh"
|
|
- "bin/build/src/build/embedder_model.clj"
|
|
- "bin/build/src/build/plugin_uberjar.clj"
|
|
- "bin/build/src/build_embedder_plugin.clj"
|
|
- "deps.edn"
|
|
- "modules/embedder/**"
|
|
- "enterprise/backend/src/metabase_enterprise/data_complexity_score/complexity_embedders.clj"
|
|
- "enterprise/backend/src/metabase_enterprise/data_complexity_score/settings.clj"
|
|
- "enterprise/backend/src/metabase_enterprise/data_complexity_score/synonym_source.clj"
|
|
- "enterprise/backend/src/metabase_enterprise/semantic_search/embedding.clj"
|
|
- "enterprise/backend/src/metabase_enterprise/semantic_search/settings.clj"
|
|
- "enterprise/backend/test/metabase_enterprise/semantic_search/appdb_pgvector_mode_test.clj"
|
|
- "enterprise/backend/test/metabase_enterprise/semantic_search/embedding_test.clj"
|
|
- "src/metabase/embeddings/provider.clj"
|
|
- "src/metabase/embeddings/startup.clj"
|
|
- "src/metabase/plugins/**"
|
|
- "test/metabase/embeddings/embedder_plugin_artifact_test.clj"
|
|
|
|
serialization_baseline:
|
|
- ".github/workflows/serialization.yml"
|
|
- "test_resources/serialization_baseline/**"
|
|
|
|
openapi:
|
|
- ".github/workflows/lint.yml"
|
|
- "src/metabase/api/**"
|
|
- "src/metabase/api_routes/**"
|
|
- "src/metabase/*_rest/api.clj"
|
|
- "src/metabase/*/api.clj"
|
|
- "src/metabase/*/api/*.clj"
|
|
- "enterprise/backend/src/metabase_enterprise/**/api.clj"
|
|
- "enterprise/backend/src/metabase_enterprise/**/api/*.clj"
|
|
- "resources/openapi/**"
|
|
- "package.json"
|