From 8a77914e864e6de1d6fd5f855cf63c813fc9791d Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Thu, 29 Nov 2018 12:38:32 +0100 Subject: [PATCH] fix(buildkite): handle arrays --- lib/manager/buildkite/extract.js | 2 +- .../__snapshots__/extract.spec.js.snap | 21 +++++++++++++++++++ test/manager/buildkite/extract.spec.js | 9 ++++++++ test/manager/buildkite/update.spec.js | 13 ++++++++++++ 4 files changed, 44 insertions(+), 1 deletion(-) diff --git a/lib/manager/buildkite/extract.js b/lib/manager/buildkite/extract.js index 013bb8fc6b..d6b6a53c3e 100644 --- a/lib/manager/buildkite/extract.js +++ b/lib/manager/buildkite/extract.js @@ -17,7 +17,7 @@ function extractPackageFile(content) { logger.trace(`Matched plugins on line ${lineNumber}`); const depLine = lines[lineNumber + 1]; logger.debug(`serviceImageLine: "${depLine}"`); - const depLineMatch = depLine.match(/^\s+([^#]+)#([^:]+):/); + const depLineMatch = depLine.match(/^\s+(?:-\s+)?([^#]+)#([^:]+):/); if (depLineMatch) { logger.trace('depLineMatch'); lineNumber += 1; diff --git a/test/manager/buildkite/__snapshots__/extract.spec.js.snap b/test/manager/buildkite/__snapshots__/extract.spec.js.snap index 048e3c120d..d28c474130 100644 --- a/test/manager/buildkite/__snapshots__/extract.spec.js.snap +++ b/test/manager/buildkite/__snapshots__/extract.spec.js.snap @@ -29,6 +29,27 @@ Array [ ] `; +exports[`lib/manager/buildkite/extract extractPackageFile() extracts arrays of plugins 1`] = ` +Array [ + Object { + "currentValue": "v2.0.1", + "depName": "docker-login", + "lineNumber": 2, + "purl": "pkg:github/buildkite-plugins/docker-login-buildkite-plugin", + "skipReason": undefined, + "versionScheme": "semver", + }, + Object { + "currentValue": "v2.0.1", + "depName": "docker-login", + "lineNumber": 10, + "purl": "pkg:github/buildkite-plugins/docker-login-buildkite-plugin", + "skipReason": undefined, + "versionScheme": "semver", + }, +] +`; + exports[`lib/manager/buildkite/extract extractPackageFile() extracts multiple plugins in same file 1`] = ` Array [ Object { diff --git a/test/manager/buildkite/extract.spec.js b/test/manager/buildkite/extract.spec.js index 95cd39326c..b18f3a150c 100644 --- a/test/manager/buildkite/extract.spec.js +++ b/test/manager/buildkite/extract.spec.js @@ -15,6 +15,10 @@ const pipeline3 = fs.readFileSync( 'test/_fixtures/buildkite/pipeline3.yml', 'utf8' ); +const pipeline4 = fs.readFileSync( + 'test/_fixtures/buildkite/pipeline4.yml', + 'utf8' +); describe('lib/manager/buildkite/extract', () => { describe('extractPackageFile()', () => { @@ -40,5 +44,10 @@ describe('lib/manager/buildkite/extract', () => { expect(res).toMatchSnapshot(); expect(res).toHaveLength(3); }); + it('extracts arrays of plugins', () => { + const res = extractPackageFile(pipeline4, config).deps; + expect(res).toMatchSnapshot(); + expect(res).toHaveLength(2); // TODO: should be 4 + }); }); }); diff --git a/test/manager/buildkite/update.spec.js b/test/manager/buildkite/update.spec.js index fbd0143b64..648d3360cf 100644 --- a/test/manager/buildkite/update.spec.js +++ b/test/manager/buildkite/update.spec.js @@ -9,6 +9,10 @@ const pipeline2 = fs.readFileSync( 'test/_fixtures/buildkite/pipeline2.yml', 'utf8' ); +const pipeline4 = fs.readFileSync( + 'test/_fixtures/buildkite/pipeline4.yml', + 'utf8' +); describe('manager/buildkite/update', () => { describe('updateDependency', () => { @@ -21,6 +25,15 @@ describe('manager/buildkite/update', () => { expect(res).not.toEqual(pipeline1); expect(res.includes(upgrade.newValue)).toBe(true); }); + it('replaces arrays', () => { + const upgrade = { + lineNumber: 10, + newValue: 'v2.2.0', + }; + const res = bkUpdate.updateDependency(pipeline4, upgrade); + expect(res).not.toEqual(pipeline4); + expect(res.includes(upgrade.newValue)).toBe(true); + }); it('replaces two values in one file', () => { const upgrade1 = { lineNumber: 4, -- GitLab