Skip to content
Snippets Groups Projects

Improve CI rules:exists pattern matching performance with cache

Merged Furkan Ayhan requested to merge 351593-cache-rules-exists into master
All threads resolved!
@@ -96,14 +96,14 @@ def matches_extension?(paths, extension_globs)
end
def pattern_matches?(paths, pattern_globs, context)
if ::Feature.disabled?(:ci_rules_exists_pattern_matches_cache, context.pipeline&.project)
if ::Feature.disabled?(:ci_rules_exists_pattern_matches_cache, context.project)
return legacy_pattern_matches?(paths, pattern_globs)
end
comparisons = 0
pattern_globs.any? do |glob|
Gitlab::SafeRequestStore.fetch("ci_rules_exists_pattern_matches_#{context.pipeline&.id}_#{glob}") do
Gitlab::SafeRequestStore.fetch("ci_rules_exists_pattern_matches_#{context.project&.id}_#{glob}") do
paths.any? do |path|
comparisons += 1
comparisons > MAX_PATTERN_COMPARISONS || pattern_match?(glob, path)
Loading