Select Git revision
determine.js
Rhys Arkins
authored and
GitHub
committed
This PR adds support for bazel WORKSPACE package files, as suggested https://github.com/alexeagle/angular-bazel-example/issues/17#issuecomment-349167982 Renovate will: 1. Detect `WORKSPACE` files anywhere in the repository 2. Look for all `git_repository()` sections in the file 3. Extract any dependencies with name, remote and tag values 4. Look up any dependencies that (a) have a github https remote, and (b) a valid semver as tag 5. Update the tag to the latest available
determine.js 2.47 KiB
const packageFileWorker = require('../../package-file');
const { mergeChildConfig, filterConfig } = require('../../../config');
const { detectSemanticCommits } = require('./semantic');
async function determineRepoUpgrades(config) {
logger.debug('determineRepoUpgrades()');
logger.trace({ config });
let upgrades = [];
logger.debug(`Found ${config.packageFiles.length} package files`);
// Iterate through repositories sequentially
for (const packageFile of config.packageFiles) {
logger.trace({ packageFile }, 'Getting packageFile config');
let packageFileConfig = mergeChildConfig(config, packageFile);
packageFileConfig = filterConfig(packageFileConfig, 'packageFile');
if (packageFileConfig.packageFile.endsWith('package.json')) {
logger.info(
{ packageFile: packageFileConfig.packageFile },
'Renovating package.json dependencies'
);
upgrades = upgrades.concat(
await packageFileWorker.renovatePackageFile(packageFileConfig)
);
} else if (packageFileConfig.packageFile.endsWith('package.js')) {
logger.info('Renovating package.js (meteor) dependencies');
upgrades = upgrades.concat(
await packageFileWorker.renovateMeteorPackageFile(packageFileConfig)
);
} else if (packageFileConfig.packageFile.endsWith('Dockerfile')) {
logger.info('Renovating Dockerfile FROM');
upgrades = upgrades.concat(
await packageFileWorker.renovateDockerfile(packageFileConfig)
);
} else if (packageFileConfig.packageFile.endsWith('.travis.yml')) {
logger.info('Renovating .travis.yml node_js versions');
upgrades = upgrades.concat(
await packageFileWorker.renovateNodeFile(packageFileConfig)
);
} else if (packageFileConfig.packageFile.endsWith('WORKSPACE')) {
logger.info('Renovating bazel WORKSPACE dependencies');
upgrades = upgrades.concat(
await packageFileWorker.renovateBazelFile(packageFileConfig)
);
}
}
let semanticCommits;
if (upgrades.length) {
semanticCommits = await detectSemanticCommits(config);
}
// Sanitize depNames
upgrades = upgrades.map(upgrade => ({
...upgrade,
semanticCommits,
depNameSanitized: upgrade.depName
? upgrade.depName
.replace('@', '')
.replace('/', '-')
.replace(/\s+/g, '-')
.toLowerCase()
: undefined,
}));
logger.debug('returning upgrades');
return { ...config, upgrades };
}
module.exports = { determineRepoUpgrades };