diff --git a/lib/manager/index.js b/lib/manager/index.js index 71a1a880bf45d5f662ea56a2d7b12087ae229868..fd0a5f18d993d656b53910c418fe8e5b93a6cae8 100644 --- a/lib/manager/index.js +++ b/lib/manager/index.js @@ -57,6 +57,11 @@ async function detectPackageFiles(config) { logger.debug(manager + ' is disabled'); continue; // eslint-disable-line no-continue } + // Check if the parent is manually disabled + if (parentManager && config[parentManager].enabled === false) { + logger.debug(manager + ' parentManager is disabled'); + continue; // eslint-disable-line no-continue + } let files = []; if (managers[manager].detectPackageFiles) { logger.debug('manager has own detect function'); diff --git a/test/manager/index.spec.js b/test/manager/index.spec.js index 9ca1451dbf2951130cb0996640e30f7c8daaa82b..d4fff3a8e10ca6c70dc0231518f59087d5aec2f9 100644 --- a/test/manager/index.spec.js +++ b/test/manager/index.spec.js @@ -16,7 +16,7 @@ describe('manager', () => { let config; beforeEach(() => { config = { - ...defaultConfig, + ...JSON.parse(JSON.stringify(defaultConfig)), warnings: [], }; }); @@ -29,6 +29,15 @@ describe('manager', () => { const res = await manager.detectPackageFiles(config); expect(res).toHaveLength(0); }); + it('skips if parentManager is disabled', async () => { + platform.getFileList.mockReturnValueOnce([ + 'package.json', + '.circleci/config.yml', + ]); + config.docker.enabled = false; + const res = await manager.detectPackageFiles(config); + expect(res).toHaveLength(1); + }); it('adds package files to object', async () => { platform.getFileList.mockReturnValueOnce([ 'package.json',