From b1ffc66d8628c2e35ca17387a06e933417a6196b Mon Sep 17 00:00:00 2001 From: Mikko Piuhola <mikkopiu@users.noreply.github.com> Date: Sun, 30 Apr 2023 18:07:48 +0300 Subject: [PATCH] fix(manager/gitlabci): support multi-line !reference tags (#21896) --- .../gitlabci/__fixtures__/gitlab-ci.reference.yaml | 11 +++++++++++ lib/modules/manager/gitlabci/utils.spec.ts | 11 ++++++++++- lib/modules/manager/gitlabci/utils.ts | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 lib/modules/manager/gitlabci/__fixtures__/gitlab-ci.reference.yaml 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 0000000000..3ceebb9778 --- /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 f68e151191..a52b8927c4 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 15f094742b..13904a8d32 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. -- GitLab