diff --git a/lib/manager/buildkite/extract.js b/lib/manager/buildkite/extract.js index 013bb8fc6bb0d8205d22eed382b5ed0e5b8f45a5..d6b6a53c3effe237c72d3da71ef5ab5183daf407 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 048e3c120da50299e3687217622474eb2019814e..d28c474130402119bd4b557f39c52f33229ddd4f 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 95cd39326cc3397749f8353cff0e3f5bdf354228..b18f3a150cf245e89fd31ce7fcfb2cea3ba650a4 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 fbd0143b647f20f1ebff2c14dc5615f55b8c998f..648d3360cf02002c69a82f541502ad50025c8cb9 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,