From 1b28501d30fefa502235b886518133f998db4ea0 Mon Sep 17 00:00:00 2001 From: scemily13 <68038396+scemily13@users.noreply.github.com> Date: Sun, 22 May 2022 00:42:08 -0400 Subject: [PATCH] fix(buildkite): Catch '?' yaml syntax for plugins (#15666) --- .../manager/buildkite/__fixtures__/pipeline8.yml | 4 ++++ lib/modules/manager/buildkite/extract.spec.ts | 11 +++++++++++ lib/modules/manager/buildkite/extract.ts | 2 +- 3 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 lib/modules/manager/buildkite/__fixtures__/pipeline8.yml diff --git a/lib/modules/manager/buildkite/__fixtures__/pipeline8.yml b/lib/modules/manager/buildkite/__fixtures__/pipeline8.yml new file mode 100644 index 0000000000..a5d57559c6 --- /dev/null +++ b/lib/modules/manager/buildkite/__fixtures__/pipeline8.yml @@ -0,0 +1,4 @@ +steps: + - plugins: + - ? ssh://git@github.company.com/some-org/some-plugin.git#v3.2.7 + : enforce_peer_deps: false diff --git a/lib/modules/manager/buildkite/extract.spec.ts b/lib/modules/manager/buildkite/extract.spec.ts index 234a8a9bb1..5ab5f64322 100644 --- a/lib/modules/manager/buildkite/extract.spec.ts +++ b/lib/modules/manager/buildkite/extract.spec.ts @@ -60,5 +60,16 @@ describe('modules/manager/buildkite/extract', () => { }; expect(res).toEqual([expectedPackageDependency]); }); + + it('extracts plugin with preceding ?', () => { + const res = extractPackageFile(Fixtures.get('pipeline8.yml'))?.deps; + const expectedPackageDependency: PackageDependency = { + currentValue: 'v3.2.7', + datasource: 'github-tags', + depName: 'some-org/some-plugin', + registryUrls: ['https://github.company.com'], + }; + expect(res).toEqual([expectedPackageDependency]); + }); }); }); diff --git a/lib/modules/manager/buildkite/extract.ts b/lib/modules/manager/buildkite/extract.ts index 83131c4487..3a6c63c108 100644 --- a/lib/modules/manager/buildkite/extract.ts +++ b/lib/modules/manager/buildkite/extract.ts @@ -13,7 +13,7 @@ export function extractPackageFile(content: string): PackageFile | null { for (const line of lines) { // Search each line for plugin names const depLineMatch = regEx( - /^[\s-]*(?<depName>[^#\s]+)#(?<currentValue>[^:]+)/ + /^\s*(?:-\s+(?:\?\s+)?)?(?<depName>[^#\s]+)#(?<currentValue>[^:]+)/ ).exec(line); if (depLineMatch?.groups) { -- GitLab