mirror of
https://github.com/renovatebot/renovate.git
synced 2025-03-15 00:32:54 +00:00
fix: lock file refactor
This commit is contained in:
parent
9fe651bca9
commit
2075c20baa
1 changed files with 17 additions and 68 deletions
|
@ -15,8 +15,7 @@ module.exports = {
|
|||
|
||||
// Strips empty values, deduplicates, and returns the directories from filenames
|
||||
// istanbul ignore next
|
||||
const getDirs = arr =>
|
||||
Array.from(new Set(arr.filter(Boolean).map(path.dirname)));
|
||||
const getDirs = arr => Array.from(new Set(arr.filter(Boolean)));
|
||||
|
||||
// istanbul ignore next
|
||||
function determineLockFileDirs(config, packageFiles) {
|
||||
|
@ -317,13 +316,14 @@ async function getAdditionalFiles(config, packageFiles) {
|
|||
: { HOME: process.env.HOME, PATH: process.env.PATH };
|
||||
env.NODE_ENV = 'dev';
|
||||
|
||||
for (const lockFileDir of dirs.npmLockDirs) {
|
||||
logger.debug(`Generating package-lock.json for ${lockFileDir}`);
|
||||
const lockFileName = upath.join(lockFileDir, 'package-lock.json');
|
||||
for (const lockFile of dirs.npmLockDirs) {
|
||||
const lockFileDir = path.dirname(lockFile);
|
||||
const fileName = path.basename(lockFile);
|
||||
logger.debug(`Generating ${fileName} for ${lockFileDir}`);
|
||||
const res = await npm.generateLockFile(
|
||||
upath.join(config.tmpDir.path, lockFileDir),
|
||||
env,
|
||||
'package-lock.json'
|
||||
fileName
|
||||
);
|
||||
if (res.error) {
|
||||
// istanbul ignore if
|
||||
|
@ -348,79 +348,28 @@ async function getAdditionalFiles(config, packageFiles) {
|
|||
throw new Error('internal-error');
|
||||
}
|
||||
lockFileErrors.push({
|
||||
lockFile: lockFileName,
|
||||
lockFile,
|
||||
stderr: res.stderr,
|
||||
});
|
||||
} else {
|
||||
const existingContent = await platform.getFile(
|
||||
lockFileName,
|
||||
lockFile,
|
||||
config.parentBranch
|
||||
);
|
||||
if (res.lockFile !== existingContent) {
|
||||
logger.debug('package-lock.json needs updating');
|
||||
updatedLockFiles.push({
|
||||
name: lockFileName,
|
||||
name: lockFile,
|
||||
contents: res.lockFile,
|
||||
});
|
||||
} else {
|
||||
logger.debug("package-lock.json hasn't changed");
|
||||
logger.debug(`${lockFile} hasn't changed`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// istanbul ignore next
|
||||
for (const lockFileDir of dirs.pnpmShrinkwrapDirs) {
|
||||
logger.debug(`Generating npm-shrinkwrap.json for ${lockFileDir}`);
|
||||
const lockFileName = upath.join(lockFileDir, 'npm-shrinkwrap.json');
|
||||
const res = await npm.generateLockFile(
|
||||
upath.join(config.tmpDir.path, lockFileDir),
|
||||
env,
|
||||
'npm-shrinkwrap.json'
|
||||
);
|
||||
if (res.error) {
|
||||
// istanbul ignore if
|
||||
if (res.stderr && res.stderr.includes('No matching version found for')) {
|
||||
for (const upgrade of config.upgrades) {
|
||||
if (
|
||||
res.stderr.includes(
|
||||
`No matching version found for ${upgrade.depName}`
|
||||
)
|
||||
) {
|
||||
logger.info(
|
||||
{ dependency: upgrade.depName },
|
||||
'npm install failed for the dependency being updated - skipping branch creation'
|
||||
);
|
||||
throw new Error('registry-failure');
|
||||
}
|
||||
}
|
||||
}
|
||||
// istanbul ignore if
|
||||
if (res.stderr && res.stderr.includes('Host key verification failed')) {
|
||||
logger.info({ stderr: res.stderr }, 'Host key verification failed');
|
||||
throw new Error('internal-error');
|
||||
}
|
||||
lockFileErrors.push({
|
||||
lockFile: lockFileName,
|
||||
stderr: res.stderr,
|
||||
});
|
||||
} else {
|
||||
const existingContent = await platform.getFile(
|
||||
lockFileName,
|
||||
config.parentBranch
|
||||
);
|
||||
if (res.lockFile !== existingContent) {
|
||||
logger.debug('npm-shrinkwrap.json needs updating');
|
||||
updatedLockFiles.push({
|
||||
name: lockFileName,
|
||||
contents: res.lockFile,
|
||||
});
|
||||
} else {
|
||||
logger.debug("npm-shrinkwrap.json hasn't changed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const lockFileDir of dirs.yarnLockDirs) {
|
||||
for (const lockFile of dirs.yarnLockDirs) {
|
||||
const lockFileDir = path.dirname(lockFile);
|
||||
logger.debug(`Generating yarn.lock for ${lockFileDir}`);
|
||||
const lockFileName = upath.join(lockFileDir, 'yarn.lock');
|
||||
const res = await yarn.generateLockFile(
|
||||
|
@ -472,9 +421,9 @@ async function getAdditionalFiles(config, packageFiles) {
|
|||
}
|
||||
}
|
||||
|
||||
for (const lockFileDir of dirs.pnpmShrinkwrapDirs) {
|
||||
for (const lockFile of dirs.pnpmShrinkwrapDirs) {
|
||||
const lockFileDir = path.dirname(lockFile);
|
||||
logger.debug(`Generating shrinkwrap.yaml for ${lockFileDir}`);
|
||||
const lockFileName = upath.join(lockFileDir, 'shrinkwrap.yaml');
|
||||
const res = await pnpm.generateLockFile(
|
||||
upath.join(config.tmpDir.path, lockFileDir),
|
||||
env
|
||||
|
@ -502,18 +451,18 @@ async function getAdditionalFiles(config, packageFiles) {
|
|||
throw new Error('internal-error');
|
||||
}
|
||||
lockFileErrors.push({
|
||||
lockFile: lockFileName,
|
||||
lockFile,
|
||||
stderr: res.stderr,
|
||||
});
|
||||
} else {
|
||||
const existingContent = await platform.getFile(
|
||||
lockFileName,
|
||||
lockFile,
|
||||
config.parentBranch
|
||||
);
|
||||
if (res.lockFile !== existingContent) {
|
||||
logger.debug('shrinkwrap.yaml needs updating');
|
||||
updatedLockFiles.push({
|
||||
name: lockFileName,
|
||||
name: lockFile,
|
||||
contents: res.lockFile,
|
||||
});
|
||||
} else {
|
||||
|
|
Loading…
Reference in a new issue