ci: support list-style ci-filter patterns (#29137)

Co-authored-by: Declan Carroll <declan@n8n.io>
This commit is contained in:
Chris Z 2026-05-27 16:28:54 +08:00 committed by GitHub
parent 83671a1db6
commit a07726acb9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 1 deletions

View File

@ -93,6 +93,14 @@ describe('parseFilters', () => {
assert.deepEqual(filters.get('non-python'), ['**', '!packages/@n8n/task-runner-python/**']);
});
it('parses YAML-list-style multi-line filter', () => {
const input = `db:
- packages/@n8n/db/**
- packages/cli/**`;
const filters = parseFilters(input);
assert.deepEqual(filters.get('db'), ['packages/@n8n/db/**', 'packages/cli/**']);
});
it('parses mixed single and multi-line', () => {
const input = `non-python:
**
@ -159,6 +167,13 @@ describe('evaluateFilter', () => {
assert.equal(evaluateFilter(files, patterns), true);
});
it('list-style parsed db filter matches db package changes', () => {
const filters = parseFilters(`db:
- packages/@n8n/db/**
- packages/cli/**`);
assert.equal(evaluateFilter(['packages/@n8n/db/src/index.ts'], filters.get('db') ?? []), true);
});
it('non-.github files with workflows filter returns false', () => {
const files = ['packages/cli/src/index.ts'];
const patterns = ['.github/**'];

View File

@ -74,7 +74,8 @@ export function parseFilters(input) {
if (currentFilter && rawLine.match(/^\s/)) {
const patterns = filters.get(currentFilter);
if (patterns) patterns.push(line);
const pattern = line.startsWith('- ') ? line.slice(2).trim() : line;
if (patterns && pattern) patterns.push(pattern);
continue;
}