diff --git a/bin/config-validator.js b/bin/config-validator.js index 483315ddf269233b4c87010e4c90aab471d7df6d..8782a2e58f6b9a979188d8a4e0caf76d7c5f0af1 100755 --- a/bin/config-validator.js +++ b/bin/config-validator.js @@ -77,10 +77,6 @@ async function validate(desc, config, isPreset = false) { } catch (err) { // ignore } - // istanbul ignore if - if (global.renovateTimers) { - global.renovateTimers.forEach(timer => clearTimeout(timer)); - } if (returnVal !== 0) { process.exit(returnVal); } diff --git a/lib/manager/travis/package.js b/lib/manager/travis/package.js index be01696fc361062b14a992c9dd1f4c74d88d0baf..0bdcc65991fcdb594d369856524d2a11d419e8da 100644 --- a/lib/manager/travis/package.js +++ b/lib/manager/travis/package.js @@ -9,6 +9,7 @@ module.exports = { }; let policies; +let refreshDate; function generatePolicies() { policies = { @@ -41,32 +42,32 @@ function generatePolicies() { policies.lts_latest.push(policies.lts[policies.lts.length - 1]); } -const initTime = new Date(); -for (const data of Object.values(nodeJsSchedule)) { - const fields = ['start', 'lts', 'maintenance', 'end']; - for (const field of fields) { - const fieldDate = new Date(data[field]); - if (fieldDate > initTime) { - const offsetmilliseconds = 1 + fieldDate.getTime() - initTime.getTime(); - // istanbul ignore if - if (offsetmilliseconds < 10000000000) { - global.renovateTimers = global.renovateTimers || []; - global.renovateTimers.push( - setTimeout(generatePolicies, offsetmilliseconds) - ); +function checkPolicies() { + if (policies && refreshDate > new Date()) { + return; + } + generatePolicies(); + refreshDate = new Date('3000-01-01'); // y3k + const now = new Date(); + for (const data of Object.values(nodeJsSchedule)) { + const fields = ['start', 'lts', 'maintenance', 'end']; + for (const field of fields) { + const fieldDate = new Date(data[field]); + if (fieldDate > now && fieldDate < refreshDate) { + refreshDate = fieldDate; } } } + logger.debug('Node.js policies refresh date: ' + refreshDate); } -generatePolicies(); - async function getPackageUpdates(config) { - logger.debug('travis.getPackageUpdates()'); + logger.trace('travis.getPackageUpdates()'); const { supportPolicy } = config; if (!(supportPolicy && supportPolicy.length)) { return []; } + checkPolicies(); for (const policy of supportPolicy) { if (!Object.keys(policies).includes(policy)) { logger.warn(`Unknown supportPolicy: ${policy}`); diff --git a/lib/workers/global/index.js b/lib/workers/global/index.js index c2bfc8cfa738a1ea434a035d61c7f0bdab99aa5c..f95bb6fcb11c823003702d9ec43fb6d736f80da2 100644 --- a/lib/workers/global/index.js +++ b/lib/workers/global/index.js @@ -64,10 +64,6 @@ async function start() { await repositoryWorker.renovateRepository(repoConfig); } logger.setMeta({}); - // istanbul ignore if - if (global.renovateTimers) { - global.renovateTimers.forEach(timer => clearTimeout(timer)); - } logger.info(`${appName} finished`); } catch (err) /* istanbul ignore next */ { logger.fatal({ err }, `Fatal error: ${err.message}`);