diff --git a/lib/modules/manager/gitlabci/__fixtures__/gitlab-ci.reference.yaml b/lib/modules/manager/gitlabci/__fixtures__/gitlab-ci.reference.yaml new file mode 100644 index 0000000000000000000000000000000000000000..3ceebb977822db891dbe01a425f8ad14075ae4b4 --- /dev/null +++ b/lib/modules/manager/gitlabci/__fixtures__/gitlab-ci.reference.yaml @@ -0,0 +1,11 @@ +test: + script: + - !reference [.setup, script] + - !reference [arbitrary job name with space and no starting dot, nested1, nested2, nested3] + - !reference [ + .multiline, + reference, + ] + - !reference [ + .another, multilineref + ] diff --git a/lib/modules/manager/gitlabci/utils.spec.ts b/lib/modules/manager/gitlabci/utils.spec.ts index f68e1511919857727128c3a6382a5b2cf0ea3902..a52b8927c4789706abfa2346a0d7258f8b7dcd2c 100644 --- a/lib/modules/manager/gitlabci/utils.spec.ts +++ b/lib/modules/manager/gitlabci/utils.spec.ts @@ -1,5 +1,6 @@ +import { Fixtures } from '../../../../test/fixtures'; import type { PackageDependency } from '../types'; -import { getGitlabDep } from './utils'; +import { getGitlabDep, replaceReferenceTags } from './utils'; describe('modules/manager/gitlabci/utils', () => { describe('getGitlabDep', () => { @@ -81,4 +82,12 @@ describe('modules/manager/gitlabci/utils', () => { }); }); }); + + describe('replaceReferenceTags', () => { + it('replaces all !reference tags with empty strings', () => { + const yamlFileReferenceConfig = Fixtures.get('gitlab-ci.reference.yaml'); + const replaced = replaceReferenceTags(yamlFileReferenceConfig); + expect(replaced).not.toContain('!reference'); + }); + }); }); diff --git a/lib/modules/manager/gitlabci/utils.ts b/lib/modules/manager/gitlabci/utils.ts index 15f094742b12826160784d9e680b72393364b5eb..13904a8d32db2f2e68cd5331bfac79938e019b42 100644 --- a/lib/modules/manager/gitlabci/utils.ts +++ b/lib/modules/manager/gitlabci/utils.ts @@ -2,7 +2,7 @@ import { regEx } from '../../../util/regex'; import { getDep } from '../dockerfile/extract'; import type { PackageDependency } from '../types'; -const re = /!reference \[(.*?)\]/g; +const re = /!reference \[[^\]]+\]/g; /** * Replaces GitLab reference tags before parsing, because our yaml parser cannot process them anyway.