-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Expand file tree
/
Copy pathfilter-rules.yml
More file actions
140 lines (124 loc) · 3.62 KB
/
Copy pathfilter-rules.yml
File metadata and controls
140 lines (124 loc) · 3.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# Filter rules for determining `ci` workflow requirements
# Used with dorny/paths-filter action
#
# Each filter creates two outputs:
# - {filter_name}: 'true'/'false' if any changed files match any filter rules
# - {filter_name}_count: number of matching files
#
# E2E STRATEGY: Use separate filters to detect different file types non E2E related.
# Conservative approach - add only files that safely allow skipping E2E tests.
# DOCUMENTATION FILES
documentation_files: &documentation_files
- '**/*.{md,mdx,txt}'
- 'docs/**'
- 'LICENSE'
# ASSET FILES
asset_files: &asset_files
- '**/*.{svg,png}'
# LOW LEVEL TEST FILES
low_level_test_files: &low_level_test_files
- '**/*.test.{js,ts,tsx,jsx}'
- '**/*.stories.*'
- '**/*.snap'
# LOCALE TRANSLATION FILES
locale_translation_files: &locale_translation_files
- 'locales/languages/**/*.json'
# CONFIG FILES
config_files: &config_files
- '.eslint*'
- '.prettier*'
- 'tailwind.config.js'
- 'sonar-project.properties'
- 'codecov.yml'
- 'crowdin.yml'
- 'coverage-thresholds.json'
- '.editorconfig'
- '.watchmanconfig'
- '.gitignore'
# CI/GITHUB FILES — overridden by e2e_related_workflows below
ci_files: &ci_files
- '.github/**'
# E2E / PERFORMANCE TEST FILES — do not require a fresh native build, but still
# run E2E + Smart E2E selection when these are the only non-ignorable changes.
e2e_test_files: &e2e_test_files
- 'tests/smoke/**'
- 'tests/regression/**'
- 'tests/performance/**'
- 'tests/smoke-appium/**'
- 'tests/flows/**'
- 'tests/page-objects/**'
- 'tests/selectors/**'
- 'tests/locators/**'
- 'tests/framework/**'
- 'tests/api-mocking/**'
- 'tests/docs/**'
- 'tests/scripts/**'
- 'tests/reporters/**'
- 'tests/tools/e2e-ai-analyzer/**'
- 'tests/playwright*.config.ts'
- 'tests/playwright.*.config.ts'
- 'tests/init.detox.js'
- 'tests/environment.detox.js'
- 'tests/jest.e2e.detox.config.js'
- 'tests/helpers.js'
- 'tests/tags.js'
- 'tests/tags.performance.js'
- 'tests/teams-config.js'
- 'wdio/**'
# ALL IGNORABLE FILES - safe to skip E2E
e2e_ignorable:
- *documentation_files
- *asset_files
- *low_level_test_files
- *locale_translation_files
- *config_files
- *ci_files
# Union of ignorable + E2E test files for test-only change detection.
e2e_test_or_ignorable:
- *documentation_files
- *asset_files
- *low_level_test_files
- *locale_translation_files
- *config_files
- *ci_files
- *e2e_test_files
e2e_relevant_workflows:
- '.github/workflows/ci.yml'
- '.github/workflows/get-requirements.yml'
- '.github/workflows/build-android-e2e.yml'
- '.github/workflows/build-ios-e2e.yml'
- '.github/workflows/run-e2e-*.yml'
- '.github/workflows/update-e2e-fixtures.yml'
- '.github/workflows/build.yml'
- '.github/scripts/e2e-*.mjs'
android:
- 'android/**'
ios:
- 'ios/**'
# Combined filters for platform-only detection — avoids double-counting files that
# match both a platform filter (ios/**, android/**) and an ignorable pattern (e.g. **/*.md).
# dorny/paths-filter counts each file once per filter, so these give the correct union count.
android_or_ignorable:
- 'android/**'
- *documentation_files
- *asset_files
- *low_level_test_files
- *locale_translation_files
- *config_files
- *ci_files
ios_or_ignorable:
- 'ios/**'
- *documentation_files
- *asset_files
- *low_level_test_files
- *locale_translation_files
- *config_files
- *ci_files
# Shared smoke/regression test infrastructure whose changes can break Appium iOS smoke tests.
e2e_smoke_infra:
- 'tests/page-objects/**'
- 'tests/selectors/**'
- 'tests/locators/**'
- 'tests/framework/**'
all_changes:
- '**'