diff --git a/lib/manager/bundler/artifacts.js b/lib/manager/bundler/artifacts.js index 86b3eee06e60419f38a7c3a3a95e2d2df744e38a..57e38f37d32e2b295de26964ab80b7d2a7216907 100644 --- a/lib/manager/bundler/artifacts.js +++ b/lib/manager/bundler/artifacts.js @@ -144,12 +144,14 @@ async function getArtifacts( } } logger.debug('Returning updated Gemfile.lock'); - return { - file: { - name: lockFileName, - contents: await fs.readFile(localLockFileName, 'utf8'), + return [ + { + file: { + name: lockFileName, + contents: await fs.readFile(localLockFileName, 'utf8'), + }, }, - }; + ]; } catch (err) { if ( err.stdout && diff --git a/lib/manager/cargo/artifacts.js b/lib/manager/cargo/artifacts.js index 723409b2d1d8f7acaafe0512168213ad185b9d97..48e287f0917d0af73fe6c156ec29be5e9ec4a1dc 100644 --- a/lib/manager/cargo/artifacts.js +++ b/lib/manager/cargo/artifacts.js @@ -15,11 +15,13 @@ async function getArtifacts(cargoTomlFileName) { { err, message: err.message }, 'Failed to update Cargo lock file' ); - return { - artifactError: { - lockFile: cargoLockFileName, - stderr: err.message, + return [ + { + artifactError: { + lockFile: cargoLockFileName, + stderr: err.message, + }, }, - }; + ]; } } diff --git a/lib/manager/composer/artifacts.js b/lib/manager/composer/artifacts.js index 5c3d893d674055e2cfb030e12622ded02f59805f..a244b34db3be2b9935b39a30d8e6f9392e45759f 100644 --- a/lib/manager/composer/artifacts.js +++ b/lib/manager/composer/artifacts.js @@ -151,12 +151,14 @@ async function getArtifacts( } } logger.debug('Returning updated composer.lock'); - return { - file: { - name: lockFileName, - contents: await fs.readFile(localLockFileName, 'utf8'), + return [ + { + file: { + name: lockFileName, + contents: await fs.readFile(localLockFileName, 'utf8'), + }, }, - }; + ]; } catch (err) { if ( err.message && @@ -171,11 +173,13 @@ async function getArtifacts( 'Failed to generate composer.lock' ); } - return { - artifactError: { - lockFile: lockFileName, - stderr: err.message, + return [ + { + artifactError: { + lockFile: lockFileName, + stderr: err.message, + }, }, - }; + ]; } } diff --git a/lib/manager/gomod/artifacts.js b/lib/manager/gomod/artifacts.js index f21f604dfb15239aa57412084c9edd5063ba65d3..3437d3d0cb47af745a291f805b80f9e97e5f8c8c 100644 --- a/lib/manager/gomod/artifacts.js +++ b/lib/manager/gomod/artifacts.js @@ -93,19 +93,23 @@ async function getArtifacts( } } logger.debug('Returning updated go.sum'); - return { - file: { - name: sumFileName, - contents: await fs.readFile(localGoSumFileName, 'utf8'), + return [ + { + file: { + name: sumFileName, + contents: await fs.readFile(localGoSumFileName, 'utf8'), + }, }, - }; + ]; } catch (err) { logger.warn({ err, message: err.message }, 'Failed to update go.sum'); - return { - artifactError: { - lockFile: sumFileName, - stderr: err.message, + return [ + { + artifactError: { + lockFile: sumFileName, + stderr: err.message, + }, }, - }; + ]; } } diff --git a/lib/manager/pipenv/artifacts.js b/lib/manager/pipenv/artifacts.js index 1dd4a10e36a929e813723bccae4321d93f99b97c..228f490ae6833952abd3aae683ea81871adedede 100644 --- a/lib/manager/pipenv/artifacts.js +++ b/lib/manager/pipenv/artifacts.js @@ -86,19 +86,23 @@ async function getArtifacts( } } logger.debug('Returning updated Pipfile.lock'); - return { - file: { - name: lockFileName, - contents: await fs.readFile(localLockFileName, 'utf8'), + return [ + { + file: { + name: lockFileName, + contents: await fs.readFile(localLockFileName, 'utf8'), + }, }, - }; + ]; } catch (err) { logger.warn({ err, message: err.message }, 'Failed to update Pipfile.lock'); - return { - artifactError: { - lockFile: lockFileName, - stderr: err.message, + return [ + { + artifactError: { + lockFile: lockFileName, + stderr: err.message, + }, }, - }; + ]; } } diff --git a/lib/workers/branch/get-updated.js b/lib/workers/branch/get-updated.js index 58967385785a806c2c404afdd0ecb0dd4ecfe68e..62e396bedf5eff4e9169fa607c05a8d2db5ba43c 100644 --- a/lib/workers/branch/get-updated.js +++ b/lib/workers/branch/get-updated.js @@ -1,3 +1,4 @@ +const is = require('@sindresorhus/is'); const { get } = require('../../manager'); module.exports = { @@ -63,18 +64,20 @@ async function getUpdatedPackageFiles(config) { const updatedDeps = packageFileUpdatedDeps[packageFile.name]; const getArtifacts = get(manager, 'getArtifacts'); if (getArtifacts) { - const res = await getArtifacts( + const results = await getArtifacts( packageFile.name, updatedDeps, packageFile.contents, config ); - if (res) { - const { file, artifactError } = res; - if (file) { - updatedArtifacts.push(file); - } else if (artifactError) { - artifactErrors.push(artifactError); + if (is.nonEmptyArray(results)) { + for (const res of results) { + const { file, artifactError } = res; + if (file) { + updatedArtifacts.push(file); + } else if (artifactError) { + artifactErrors.push(artifactError); + } } } } diff --git a/test/manager/cargo/__snapshots__/artifacts.spec.js.snap b/test/manager/cargo/__snapshots__/artifacts.spec.js.snap index f8966d6004b43be27b985b8e494943ab066e0b19..b5ff11202e4189cad93eda61dca677b7f9734b03 100644 --- a/test/manager/cargo/__snapshots__/artifacts.spec.js.snap +++ b/test/manager/cargo/__snapshots__/artifacts.spec.js.snap @@ -1,10 +1,12 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`cargo.getArtifacts() catches errors 1`] = ` -Object { - "artifactError": Object { - "lockFile": undefined, - "stderr": "Cannot read property 'replace' of undefined", +Array [ + Object { + "artifactError": Object { + "lockFile": undefined, + "stderr": "Cannot read property 'replace' of undefined", + }, }, -} +] `; diff --git a/test/manager/composer/__snapshots__/artifacts.spec.js.snap b/test/manager/composer/__snapshots__/artifacts.spec.js.snap index d5576599a94b239d1fea4f1e32934f115096e004..f4b89c9286ad5052fb255fcb6bb5cab5e51243dc 100644 --- a/test/manager/composer/__snapshots__/artifacts.spec.js.snap +++ b/test/manager/composer/__snapshots__/artifacts.spec.js.snap @@ -1,19 +1,23 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`.getArtifacts() catches errors 1`] = ` -Object { - "artifactError": Object { - "lockFile": "composer.lock", - "stderr": "not found", +Array [ + Object { + "artifactError": Object { + "lockFile": "composer.lock", + "stderr": "not found", + }, }, -} +] `; exports[`.getArtifacts() catches unmet requirements errors 1`] = ` -Object { - "artifactError": Object { - "lockFile": "composer.lock", - "stderr": "fooYour requirements could not be resolved to an installable set of packages.bar", +Array [ + Object { + "artifactError": Object { + "lockFile": "composer.lock", + "stderr": "fooYour requirements could not be resolved to an installable set of packages.bar", + }, }, -} +] `; diff --git a/test/manager/gomod/__snapshots__/artifacts.spec.js.snap b/test/manager/gomod/__snapshots__/artifacts.spec.js.snap index 15e0db1f79abc2d69d474530dda33be222957119..1ea549e9ed2f6f0bfcad40c5170c82f7005395fd 100644 --- a/test/manager/gomod/__snapshots__/artifacts.spec.js.snap +++ b/test/manager/gomod/__snapshots__/artifacts.spec.js.snap @@ -1,10 +1,12 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`.getArtifacts() catches errors 1`] = ` -Object { - "artifactError": Object { - "lockFile": "go.sum", - "stderr": "This update totally doesnt work", +Array [ + Object { + "artifactError": Object { + "lockFile": "go.sum", + "stderr": "This update totally doesnt work", + }, }, -} +] `; diff --git a/test/manager/pipenv/__snapshots__/artifacts.spec.js.snap b/test/manager/pipenv/__snapshots__/artifacts.spec.js.snap index 444dc17b12f9e029128178ee1c1c80a0465e56a3..29d6b76183fd554d658f694165e4599502b529d3 100644 --- a/test/manager/pipenv/__snapshots__/artifacts.spec.js.snap +++ b/test/manager/pipenv/__snapshots__/artifacts.spec.js.snap @@ -1,10 +1,12 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`.getArtifacts() catches errors 1`] = ` -Object { - "artifactError": Object { - "lockFile": "Pipfile.lock", - "stderr": "not found", +Array [ + Object { + "artifactError": Object { + "lockFile": "Pipfile.lock", + "stderr": "not found", + }, }, -} +] `; diff --git a/test/workers/branch/get-updated.spec.js b/test/workers/branch/get-updated.spec.js index f1766028c31bc9d01d726f73eccd366137bae22d..19294d0b761053bf30f478084a086706a35d3d86 100644 --- a/test/workers/branch/get-updated.spec.js +++ b/test/workers/branch/get-updated.spec.js @@ -49,12 +49,14 @@ describe('workers/branch/get-updated', () => { manager: 'composer', }); composer.updateDependency.mockReturnValue('some new content'); - composer.getArtifacts.mockReturnValue({ - file: { - name: 'composer.json', - contents: 'some contents', + composer.getArtifacts.mockReturnValue([ + { + file: { + name: 'composer.json', + contents: 'some contents', + }, }, - }); + ]); const res = await getUpdatedPackageFiles(config); expect(res).toMatchSnapshot(); }); @@ -64,12 +66,14 @@ describe('workers/branch/get-updated', () => { manager: 'composer', }); composer.updateDependency.mockReturnValue('some new content'); - composer.getArtifacts.mockReturnValue({ - artifactError: { - name: 'composer.lock', - stderr: 'some error', + composer.getArtifacts.mockReturnValue([ + { + artifactError: { + name: 'composer.lock', + stderr: 'some error', + }, }, - }); + ]); const res = await getUpdatedPackageFiles(config); expect(res).toMatchSnapshot(); });