From 1eb37c43731893349c321990cbd34a56e4580a32 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Mon, 7 May 2018 06:26:07 +0200 Subject: [PATCH] refactor: move repo finalise logic to own directory --- lib/workers/repository/finalise/index.js | 14 ++++++++++++ .../{cleanup.js => finalise/prune.js} | 3 +-- .../repository/{ => finalise}/validate.js | 2 +- lib/workers/repository/index.js | 22 +++++-------------- .../prune.spec.js} | 6 ++--- .../{ => finalise}/validate.spec.js | 2 +- test/workers/repository/index.spec.js | 3 +-- 7 files changed, 27 insertions(+), 25 deletions(-) create mode 100644 lib/workers/repository/finalise/index.js rename lib/workers/repository/{cleanup.js => finalise/prune.js} (95%) rename lib/workers/repository/{ => finalise}/validate.js (97%) rename test/workers/repository/{cleanup.spec.js => finalise/prune.spec.js} (92%) rename test/workers/repository/{ => finalise}/validate.spec.js (97%) diff --git a/lib/workers/repository/finalise/index.js b/lib/workers/repository/finalise/index.js new file mode 100644 index 0000000000..e3fa96c485 --- /dev/null +++ b/lib/workers/repository/finalise/index.js @@ -0,0 +1,14 @@ +const { validatePrs } = require('./validate'); +const { pruneStaleBranches } = require('./prune'); + +module.exports = { + finaliseRepo, +}; + +// istanbul ignore next +async function finaliseRepo(config, branchList) { + // TODO: Promise.all + await validatePrs(config); + await pruneStaleBranches(config, branchList); + platform.cleanRepo(); +} diff --git a/lib/workers/repository/cleanup.js b/lib/workers/repository/finalise/prune.js similarity index 95% rename from lib/workers/repository/cleanup.js rename to lib/workers/repository/finalise/prune.js index 213f7612f7..a357c567ae 100644 --- a/lib/workers/repository/cleanup.js +++ b/lib/workers/repository/finalise/prune.js @@ -2,9 +2,8 @@ module.exports = { pruneStaleBranches, }; -async function pruneStaleBranches(config) { +async function pruneStaleBranches(config, branchList) { // TODO: try/catch - const { branchList } = config; logger.debug('Removing any stale branches'); logger.trace({ config }, `pruneStaleBranches`); logger.debug(`config.repoIsOnboarded=${config.repoIsOnboarded}`); diff --git a/lib/workers/repository/validate.js b/lib/workers/repository/finalise/validate.js similarity index 97% rename from lib/workers/repository/validate.js rename to lib/workers/repository/finalise/validate.js index fb2911e4cb..53892712df 100644 --- a/lib/workers/repository/validate.js +++ b/lib/workers/repository/finalise/validate.js @@ -1,4 +1,4 @@ -const { migrateAndValidate } = require('../../config/migrate-validate'); +const { migrateAndValidate } = require('../../../config/migrate-validate'); async function getRenovatePrs(branchPrefix) { return (await platform.getPrList()) diff --git a/lib/workers/repository/index.js b/lib/workers/repository/index.js index 12b849dad4..548bd32086 100644 --- a/lib/workers/repository/index.js +++ b/lib/workers/repository/index.js @@ -4,8 +4,7 @@ const { determineUpdates } = require('./updates'); const { ensureOnboardingPr } = require('./onboarding/pr'); const { writeUpdates } = require('./write'); const { handleError } = require('./error'); -const { pruneStaleBranches } = require('./cleanup'); -const { validatePrs } = require('./validate'); +const { finaliseRepo } = require('./finalise'); const { resolvePackageFiles } = require('../../manager'); @@ -77,23 +76,14 @@ async function renovateRepository(repoConfig) { res = config.repoIsOnboarded ? await writeUpdates(config) : await ensureOnboardingPr(config); - await validatePrs(commonConfig || config); + logger.setMeta({ repository: config.repository }); + config.branchPrefix = commonConfig + ? commonConfig.branchPrefix + : config.branchPrefix; + await finaliseRepo(commonConfig || config, config.branchList); } catch (err) /* istanbul ignore next */ { res = await handleError(config, err); } - logger.setMeta({ repository: config.repository }); - config.branchPrefix = commonConfig - ? commonConfig.branchPrefix - : config.branchPrefix; - try { - await pruneStaleBranches(config); - platform.cleanRepo(); - } catch (err) /* istanbul ignore next */ { - logger.error( - { err, message: err.message }, - 'Error pruning/cleaning repository' - ); - } const disabledStatuses = [ 'archived', 'blocked', diff --git a/test/workers/repository/cleanup.spec.js b/test/workers/repository/finalise/prune.spec.js similarity index 92% rename from test/workers/repository/cleanup.spec.js rename to test/workers/repository/finalise/prune.spec.js index 8ca8169d03..9f81cedc3a 100644 --- a/test/workers/repository/cleanup.spec.js +++ b/test/workers/repository/finalise/prune.spec.js @@ -1,15 +1,15 @@ -const cleanup = require('../../../lib/workers/repository/cleanup'); +const cleanup = require('../../../../lib/workers/repository/finalise/prune'); let config; beforeEach(() => { jest.resetAllMocks(); - config = require('../../_fixtures/config'); + config = require('../../../_fixtures/config'); config.platform = 'github'; config.errors = []; config.warnings = []; }); -describe('workers/repository/cleanup', () => { +describe('workers/repository/finalise/prune', () => { describe('pruneStaleBranches()', () => { it('returns if no branchList', async () => { delete config.branchList; diff --git a/test/workers/repository/validate.spec.js b/test/workers/repository/finalise/validate.spec.js similarity index 97% rename from test/workers/repository/validate.spec.js rename to test/workers/repository/finalise/validate.spec.js index 4345d7d8df..25fc8a2e87 100644 --- a/test/workers/repository/validate.spec.js +++ b/test/workers/repository/finalise/validate.spec.js @@ -1,4 +1,4 @@ -const validate = require('../../../lib/workers/repository/validate'); +const validate = require('../../../../lib/workers/repository/finalise/validate'); beforeEach(() => { jest.resetAllMocks(); diff --git a/test/workers/repository/index.spec.js b/test/workers/repository/index.spec.js index 722675c5f5..acdf5f2fd5 100644 --- a/test/workers/repository/index.spec.js +++ b/test/workers/repository/index.spec.js @@ -11,8 +11,7 @@ jest.mock('../../../lib/workers/repository/init/apis'); jest.mock('../../../lib/workers/repository/updates'); jest.mock('../../../lib/workers/repository/onboarding/pr'); jest.mock('../../../lib/workers/repository/write'); -jest.mock('../../../lib/workers/repository/cleanup'); -jest.mock('../../../lib/workers/repository/validate'); +jest.mock('../../../lib/workers/repository/finalise'); jest.mock('../../../lib/manager'); jest.mock('delay'); -- GitLab