diff --git a/lib/manager/composer/artifacts.js b/lib/manager/composer/artifacts.js index a244b34db3be2b9935b39a30d8e6f9392e45759f..1ddbbfb48943b2473b353010d839976704d682d1 100644 --- a/lib/manager/composer/artifacts.js +++ b/lib/manager/composer/artifacts.js @@ -167,6 +167,11 @@ async function getArtifacts( ) ) { logger.info('Composer requirements cannot be resolved'); + } else if ( + err.message && + err.message.includes('write error (disk full?)') + ) { + throw new Error('disk-space'); } else { logger.warn( { err, message: err.message }, diff --git a/test/manager/composer/artifacts.spec.js b/test/manager/composer/artifacts.spec.js index 2080fdf5922d5e33d7dae4486df85d1e4b4ec5e8..227976e485b5ddd9ebce410b1ff4fdf1f559677e 100644 --- a/test/manager/composer/artifacts.spec.js +++ b/test/manager/composer/artifacts.spec.js @@ -99,4 +99,19 @@ describe('.getArtifacts()', () => { await composer.getArtifacts('composer.json', [], '{}', config) ).toMatchSnapshot(); }); + it('throws for disk space', async () => { + platform.getFile.mockReturnValueOnce('Current composer.lock'); + fs.outputFile = jest.fn(() => { + throw new Error( + 'vendor/composer/07fe2366/sebastianbergmann-php-code-coverage-c896779/src/Report/Html/Renderer/Template/js/d3.min.js: write error (disk full?). Continue? (y/n/^C) ' + ); + }); + let e; + try { + await composer.getArtifacts('composer.json', [], '{}', config); + } catch (err) { + e = err; + } + expect(e).toBeDefined(); + }); });