UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

74 lines (73 loc) 2.58 kB
import "../../../constants/error-messages.js"; import { logger } from "../../../logger/index.js"; import { findLocalSiblingOrParent, readLocalFile, writeLocalFile } from "../../../util/fs/index.js"; import { getGitEnvironmentVariables } from "../../../util/git/auth.js"; import { exec } from "../../../util/exec/index.js"; import { quote } from "shlex"; //#region lib/modules/manager/conan/artifacts.ts async function conanLockUpdate(conanFilePath, isLockFileMaintenance, conanConstraint, pythonConstraint) { await exec(`conan lock create ${quote(conanFilePath)}${isLockFileMaintenance ? " --lockfile=\"\"" : ""}`, { extraEnv: { ...getGitEnvironmentVariables(["conan"]) }, toolConstraints: [{ toolName: "python", constraint: pythonConstraint }, { toolName: "conan", constraint: conanConstraint }], docker: {} }); } async function updateArtifacts(updateArtifact) { const { packageFileName, updatedDeps, newPackageFileContent, config } = updateArtifact; logger.trace(`conan.updateArtifacts(${packageFileName})`); const { isLockFileMaintenance } = config; if (updatedDeps.length === 0 && !isLockFileMaintenance) { logger.trace("No conan.lock dependencies to update"); return null; } const lockFileName = await findLocalSiblingOrParent(packageFileName, "conan.lock"); if (!lockFileName) { logger.trace("No conan.lock found"); return null; } const existingLockFileContent = await readLocalFile(lockFileName); if (!existingLockFileContent) { logger.debug(`${lockFileName} read operation failed`); return null; } try { await writeLocalFile(packageFileName, newPackageFileContent); logger.trace(`Updating ${lockFileName}`); await conanLockUpdate(packageFileName, isLockFileMaintenance, config.constraints?.conan, config.constraints?.python); const newLockFileContent = await readLocalFile(lockFileName); if (!newLockFileContent) { logger.debug(`New ${lockFileName} read operation failed`); return null; } if (existingLockFileContent === newLockFileContent) { logger.trace(`${lockFileName} is unchanged`); return null; } logger.trace(`Returning updated ${lockFileName}`); return [{ file: { type: "addition", path: lockFileName, contents: newLockFileContent } }]; } catch (err) { if (err.message === "temporary-error") throw err; logger.debug({ err, packageFileName, lockFileName }, "Lockfile update failed"); return [{ artifactError: { fileName: lockFileName, stderr: err.message } }]; } } //#endregion export { updateArtifacts }; //# sourceMappingURL=artifacts.js.map