renovate 42.71.2 → 42.71.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -137,7 +137,7 @@ async function updateArtifacts({ packageFileName, newPackageFileContent, updated
137
137
  if (err.message === error_messages_1.TEMPORARY_ERROR) {
138
138
  throw err;
139
139
  }
140
- logger_1.logger.warn({ err }, 'Error executing gradle wrapper update command. It can be not a critical one though.');
140
+ logger_1.logger.warn({ err }, 'Error executing gradle wrapper update command. This may not necessarily be a blocker to the update, so please verify with the gradle wrapper output logs.');
141
141
  }
142
142
  const buildFileName = await updateBuildFile(localGradleDir, {
143
143
  gradleVersion: config.newValue,
@@ -1 +1 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle-wrapper/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { isTruthy } from '@sindresorhus/is';\nimport { lang, query as q } from 'good-enough-parser';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n localPathExists,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport type { StatusResult } from '../../../util/git/types';\nimport { Http } from '../../../util/http';\nimport { newlineRegex } from '../../../util/regex';\nimport { replaceAt } from '../../../util/string';\nimport { updateArtifacts as gradleUpdateArtifacts } from '../gradle';\nimport type {\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport {\n extraEnv,\n getJavaConstraint,\n gradleWrapperFileName,\n prepareGradleCommand,\n} from './utils';\n\nconst http = new Http('gradle-wrapper');\nconst groovy = lang.createLang('groovy');\n\ntype Ctx = string[];\n\nasync function addIfUpdated(\n status: StatusResult,\n fileProjectPath: string,\n): Promise<UpdateArtifactsResult | null> {\n if (status.modified.includes(fileProjectPath)) {\n return {\n file: {\n type: 'addition',\n path: fileProjectPath,\n contents: await readLocalFile(fileProjectPath),\n },\n };\n }\n return null;\n}\n\nfunction getDistributionUrl(newPackageFileContent: string): string | null {\n const distributionUrlLine = newPackageFileContent\n .split(newlineRegex)\n .find((line) => line.startsWith('distributionUrl='));\n if (distributionUrlLine) {\n return distributionUrlLine\n .replace('distributionUrl=', '')\n .replace('https\\\\:', 'https:');\n }\n return null;\n}\n\nasync function getDistributionChecksum(url: string): Promise<string> {\n const { body } = await http.getText(`${url}.sha256`);\n return body;\n}\n\nexport async function updateBuildFile(\n localGradleDir: string,\n wrapperProperties: Record<string, string | undefined | null>,\n): Promise<string> {\n let buildFileName = upath.join(localGradleDir, 'build.gradle');\n if (!(await localPathExists(buildFileName))) {\n buildFileName = upath.join(localGradleDir, 'build.gradle.kts');\n }\n\n const buildFileContent = await readLocalFile(buildFileName, 'utf8');\n if (!buildFileContent) {\n logger.debug('build.gradle or build.gradle.kts not found');\n return buildFileName;\n }\n\n let buildFileUpdated = buildFileContent;\n for (const [propertyName, newValue] of Object.entries(wrapperProperties)) {\n if (!newValue) {\n continue;\n }\n\n const query = q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n search: q\n .sym<Ctx>(propertyName)\n .op('=')\n .str((ctx, { value, offset }) => {\n buildFileUpdated = replaceAt(\n buildFileUpdated,\n offset,\n value,\n newValue,\n );\n return ctx;\n }),\n });\n groovy.query(buildFileUpdated, query, []);\n }\n\n await writeLocalFile(buildFileName, buildFileUpdated);\n\n return buildFileName;\n}\n\nexport async function updateLockFiles(\n buildFileName: string,\n config: UpdateArtifactsConfig,\n): Promise<UpdateArtifactsResult[] | null> {\n const buildFileContent = await readLocalFile(buildFileName, 'utf8');\n if (!buildFileContent) {\n logger.debug('build.gradle or build.gradle.kts not found');\n return null;\n }\n\n return await gradleUpdateArtifacts({\n packageFileName: buildFileName,\n updatedDeps: [],\n newPackageFileContent: buildFileContent,\n config,\n });\n}\n\nexport async function updateArtifacts({\n packageFileName,\n newPackageFileContent,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n try {\n logger.debug({ updatedDeps }, 'gradle-wrapper.updateArtifacts()');\n const localGradleDir = upath.join(upath.dirname(packageFileName), '../../');\n const gradlewFile = upath.join(localGradleDir, gradleWrapperFileName());\n\n let cmd = await prepareGradleCommand(gradlewFile);\n if (!cmd) {\n logger.info('No gradlew found - skipping Artifacts update');\n return null;\n }\n cmd += ' :wrapper';\n\n let checksum: string | null = null;\n const distributionUrl = getDistributionUrl(newPackageFileContent);\n if (distributionUrl) {\n cmd += ` --gradle-distribution-url ${distributionUrl}`;\n if (newPackageFileContent.includes('distributionSha256Sum=')) {\n //update checksum in case of distributionSha256Sum in properties then run wrapper\n checksum = await getDistributionChecksum(distributionUrl);\n await writeLocalFile(\n packageFileName,\n newPackageFileContent.replace(\n /distributionSha256Sum=.*/,\n `distributionSha256Sum=${checksum}`,\n ),\n );\n cmd += ` --gradle-distribution-sha256-sum ${quote(checksum)}`;\n }\n } else {\n cmd += ` --gradle-version ${quote(config.newValue!)}`;\n }\n logger.debug(`Updating gradle wrapper: \"${cmd}\"`);\n const execOptions: ExecOptions = {\n cwdFile: gradlewFile,\n docker: {},\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ??\n (await getJavaConstraint(config.currentValue, gradlewFile)),\n },\n ],\n };\n try {\n await exec(cmd, execOptions);\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn(\n { err },\n 'Error executing gradle wrapper update command. It can be not a critical one though.',\n );\n }\n\n const buildFileName = await updateBuildFile(localGradleDir, {\n gradleVersion: config.newValue,\n distributionSha256Sum: checksum,\n distributionUrl,\n });\n const lockFiles = await updateLockFiles(buildFileName, config);\n\n const status = await getRepoStatus();\n const artifactFileNames = [\n packageFileName,\n buildFileName,\n ...['gradle/wrapper/gradle-wrapper.jar', 'gradlew', 'gradlew.bat'].map(\n (filename) => upath.join(localGradleDir, filename),\n ),\n ];\n const updateArtifactsResult = (\n await Promise.all(\n artifactFileNames.map((fileProjectPath) =>\n addIfUpdated(status, fileProjectPath),\n ),\n )\n ).filter(isTruthy);\n if (lockFiles) {\n updateArtifactsResult.push(...lockFiles);\n }\n\n logger.debug(\n { files: updateArtifactsResult.map((r) => r.file?.path) },\n `Returning updated gradle-wrapper files`,\n );\n return updateArtifactsResult;\n } catch (err) {\n logger.debug({ err }, 'Error setting new Gradle Wrapper release value');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
1
+ {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../lib/modules/manager/gradle-wrapper/artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { isTruthy } from '@sindresorhus/is';\nimport { lang, query as q } from 'good-enough-parser';\nimport { quote } from 'shlex';\nimport upath from 'upath';\nimport { TEMPORARY_ERROR } from '../../../constants/error-messages';\nimport { logger } from '../../../logger';\nimport { exec } from '../../../util/exec';\nimport type { ExecOptions } from '../../../util/exec/types';\nimport {\n localPathExists,\n readLocalFile,\n writeLocalFile,\n} from '../../../util/fs';\nimport { getRepoStatus } from '../../../util/git';\nimport type { StatusResult } from '../../../util/git/types';\nimport { Http } from '../../../util/http';\nimport { newlineRegex } from '../../../util/regex';\nimport { replaceAt } from '../../../util/string';\nimport { updateArtifacts as gradleUpdateArtifacts } from '../gradle';\nimport type {\n UpdateArtifact,\n UpdateArtifactsConfig,\n UpdateArtifactsResult,\n} from '../types';\nimport {\n extraEnv,\n getJavaConstraint,\n gradleWrapperFileName,\n prepareGradleCommand,\n} from './utils';\n\nconst http = new Http('gradle-wrapper');\nconst groovy = lang.createLang('groovy');\n\ntype Ctx = string[];\n\nasync function addIfUpdated(\n status: StatusResult,\n fileProjectPath: string,\n): Promise<UpdateArtifactsResult | null> {\n if (status.modified.includes(fileProjectPath)) {\n return {\n file: {\n type: 'addition',\n path: fileProjectPath,\n contents: await readLocalFile(fileProjectPath),\n },\n };\n }\n return null;\n}\n\nfunction getDistributionUrl(newPackageFileContent: string): string | null {\n const distributionUrlLine = newPackageFileContent\n .split(newlineRegex)\n .find((line) => line.startsWith('distributionUrl='));\n if (distributionUrlLine) {\n return distributionUrlLine\n .replace('distributionUrl=', '')\n .replace('https\\\\:', 'https:');\n }\n return null;\n}\n\nasync function getDistributionChecksum(url: string): Promise<string> {\n const { body } = await http.getText(`${url}.sha256`);\n return body;\n}\n\nexport async function updateBuildFile(\n localGradleDir: string,\n wrapperProperties: Record<string, string | undefined | null>,\n): Promise<string> {\n let buildFileName = upath.join(localGradleDir, 'build.gradle');\n if (!(await localPathExists(buildFileName))) {\n buildFileName = upath.join(localGradleDir, 'build.gradle.kts');\n }\n\n const buildFileContent = await readLocalFile(buildFileName, 'utf8');\n if (!buildFileContent) {\n logger.debug('build.gradle or build.gradle.kts not found');\n return buildFileName;\n }\n\n let buildFileUpdated = buildFileContent;\n for (const [propertyName, newValue] of Object.entries(wrapperProperties)) {\n if (!newValue) {\n continue;\n }\n\n const query = q.tree({\n type: 'wrapped-tree',\n maxDepth: 1,\n search: q\n .sym<Ctx>(propertyName)\n .op('=')\n .str((ctx, { value, offset }) => {\n buildFileUpdated = replaceAt(\n buildFileUpdated,\n offset,\n value,\n newValue,\n );\n return ctx;\n }),\n });\n groovy.query(buildFileUpdated, query, []);\n }\n\n await writeLocalFile(buildFileName, buildFileUpdated);\n\n return buildFileName;\n}\n\nexport async function updateLockFiles(\n buildFileName: string,\n config: UpdateArtifactsConfig,\n): Promise<UpdateArtifactsResult[] | null> {\n const buildFileContent = await readLocalFile(buildFileName, 'utf8');\n if (!buildFileContent) {\n logger.debug('build.gradle or build.gradle.kts not found');\n return null;\n }\n\n return await gradleUpdateArtifacts({\n packageFileName: buildFileName,\n updatedDeps: [],\n newPackageFileContent: buildFileContent,\n config,\n });\n}\n\nexport async function updateArtifacts({\n packageFileName,\n newPackageFileContent,\n updatedDeps,\n config,\n}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> {\n try {\n logger.debug({ updatedDeps }, 'gradle-wrapper.updateArtifacts()');\n const localGradleDir = upath.join(upath.dirname(packageFileName), '../../');\n const gradlewFile = upath.join(localGradleDir, gradleWrapperFileName());\n\n let cmd = await prepareGradleCommand(gradlewFile);\n if (!cmd) {\n logger.info('No gradlew found - skipping Artifacts update');\n return null;\n }\n cmd += ' :wrapper';\n\n let checksum: string | null = null;\n const distributionUrl = getDistributionUrl(newPackageFileContent);\n if (distributionUrl) {\n cmd += ` --gradle-distribution-url ${distributionUrl}`;\n if (newPackageFileContent.includes('distributionSha256Sum=')) {\n //update checksum in case of distributionSha256Sum in properties then run wrapper\n checksum = await getDistributionChecksum(distributionUrl);\n await writeLocalFile(\n packageFileName,\n newPackageFileContent.replace(\n /distributionSha256Sum=.*/,\n `distributionSha256Sum=${checksum}`,\n ),\n );\n cmd += ` --gradle-distribution-sha256-sum ${quote(checksum)}`;\n }\n } else {\n cmd += ` --gradle-version ${quote(config.newValue!)}`;\n }\n logger.debug(`Updating gradle wrapper: \"${cmd}\"`);\n const execOptions: ExecOptions = {\n cwdFile: gradlewFile,\n docker: {},\n extraEnv,\n toolConstraints: [\n {\n toolName: 'java',\n constraint:\n config.constraints?.java ??\n (await getJavaConstraint(config.currentValue, gradlewFile)),\n },\n ],\n };\n try {\n await exec(cmd, execOptions);\n } catch (err) {\n // istanbul ignore if\n if (err.message === TEMPORARY_ERROR) {\n throw err;\n }\n logger.warn(\n { err },\n 'Error executing gradle wrapper update command. This may not necessarily be a blocker to the update, so please verify with the gradle wrapper output logs.',\n );\n }\n\n const buildFileName = await updateBuildFile(localGradleDir, {\n gradleVersion: config.newValue,\n distributionSha256Sum: checksum,\n distributionUrl,\n });\n const lockFiles = await updateLockFiles(buildFileName, config);\n\n const status = await getRepoStatus();\n const artifactFileNames = [\n packageFileName,\n buildFileName,\n ...['gradle/wrapper/gradle-wrapper.jar', 'gradlew', 'gradlew.bat'].map(\n (filename) => upath.join(localGradleDir, filename),\n ),\n ];\n const updateArtifactsResult = (\n await Promise.all(\n artifactFileNames.map((fileProjectPath) =>\n addIfUpdated(status, fileProjectPath),\n ),\n )\n ).filter(isTruthy);\n if (lockFiles) {\n updateArtifactsResult.push(...lockFiles);\n }\n\n logger.debug(\n { files: updateArtifactsResult.map((r) => r.file?.path) },\n `Returning updated gradle-wrapper files`,\n );\n return updateArtifactsResult;\n } catch (err) {\n logger.debug({ err }, 'Error setting new Gradle Wrapper release value');\n return [\n {\n artifactError: {\n lockFile: packageFileName,\n stderr: err.message,\n },\n },\n ];\n }\n}\n"]}
@@ -45,6 +45,7 @@ function getRawExecOptions(opts) {
45
45
  env: childEnv,
46
46
  maxBuffer,
47
47
  timeout,
48
+ ...(opts.shell !== undefined && { shell: opts.shell }),
48
49
  stdin: 'pipe',
49
50
  stdout: opts.ignoreStdout ? 'ignore' : 'pipe',
50
51
  stderr: 'pipe',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/exec/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyString } from '@sindresorhus/is';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../config/global';\nimport { TEMPORARY_ERROR } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { getCustomEnv, getUserEnv } from '../env';\nimport { rawExec } from './common';\nimport { generateInstallCommands, isDynamicInstall } from './containerbase';\nimport {\n generateDockerCommand,\n removeDockerContainer,\n sideCarImage,\n} from './docker';\nimport { getHermitEnvs, isHermit } from './hermit';\nimport type {\n DockerOptions,\n ExecOptions,\n ExecResult,\n ExtraEnv,\n Opt,\n RawExecOptions,\n} from './types';\nimport { getChildEnv } from './utils';\n\nfunction dockerEnvVars(extraEnv: ExtraEnv, childEnv: ExtraEnv): string[] {\n const extraEnvKeys = Object.keys(extraEnv);\n return extraEnvKeys.filter((key) => isNonEmptyString(childEnv[key]));\n}\n\nfunction getCwd({ cwd, cwdFile }: ExecOptions): string | undefined {\n const defaultCwd = GlobalConfig.get('localDir');\n const paramCwd = cwdFile\n ? upath.join(defaultCwd, upath.dirname(cwdFile))\n : cwd;\n return paramCwd ?? defaultCwd;\n}\n\nfunction getRawExecOptions(opts: ExecOptions): RawExecOptions {\n const defaultExecutionTimeout = GlobalConfig.get('executionTimeout');\n const childEnv = getChildEnv(opts);\n const cwd = getCwd(opts);\n let timeout = opts.timeout;\n // Set default timeout config.executionTimeout if specified; othrwise to 15 minutes\n if (!timeout) {\n if (defaultExecutionTimeout) {\n timeout = defaultExecutionTimeout * 60 * 1000;\n } else {\n timeout = 15 * 60 * 1000;\n }\n }\n\n // Set default max buffer size to 10MB\n const maxBuffer = opts.maxBuffer ?? 10 * 1024 * 1024;\n\n return {\n cwd,\n env: childEnv,\n maxBuffer,\n timeout,\n stdin: 'pipe',\n stdout: opts.ignoreStdout ? 'ignore' : 'pipe',\n stderr: 'pipe',\n };\n}\n\nfunction isDocker(docker: Opt<DockerOptions>): docker is DockerOptions {\n return GlobalConfig.get('binarySource') === 'docker' && !!docker;\n}\n\ninterface RawExecArguments {\n rawCommands: string[];\n rawOptions: RawExecOptions;\n}\n\nasync function prepareRawExec(\n cmd: string | string[],\n opts: ExecOptions,\n): Promise<RawExecArguments> {\n const { docker } = opts;\n const preCommands = opts.preCommands ?? [];\n const customEnvVariables = getCustomEnv();\n const userConfiguredEnv = getUserEnv();\n const { containerbaseDir, binarySource } = GlobalConfig.get();\n\n if (binarySource === 'docker' || binarySource === 'install') {\n logger.debug(`Setting CONTAINERBASE_CACHE_DIR to ${containerbaseDir!}`);\n opts.env ??= {};\n opts.env.CONTAINERBASE_CACHE_DIR = containerbaseDir;\n }\n\n let rawOptions = getRawExecOptions(opts);\n\n let rawCommands = typeof cmd === 'string' ? [cmd] : cmd;\n\n if (isDocker(docker)) {\n logger.debug({ image: sideCarImage }, 'Using docker to execute');\n const extraEnv = {\n ...opts.extraEnv,\n ...customEnvVariables,\n ...userConfiguredEnv,\n };\n const childEnv = getChildEnv(opts);\n const envVars = [\n ...dockerEnvVars(extraEnv, childEnv),\n 'CONTAINERBASE_CACHE_DIR',\n ];\n const cwd = getCwd(opts);\n const dockerOptions: DockerOptions = { ...docker, cwd, envVars };\n const dockerCommand = await generateDockerCommand(\n rawCommands,\n [\n ...(await generateInstallCommands(opts.toolConstraints)),\n ...preCommands,\n ],\n dockerOptions,\n );\n rawCommands = [dockerCommand];\n } else if (isDynamicInstall(opts.toolConstraints)) {\n logger.debug('Using containerbase dynamic installs');\n rawCommands = [\n ...(await generateInstallCommands(opts.toolConstraints)),\n ...preCommands,\n ...rawCommands,\n ];\n } else if (isHermit()) {\n const hermitEnvVars = await getHermitEnvs(rawOptions);\n logger.debug(\n { hermitEnvVars },\n 'merging hermit environment variables into the execution options',\n );\n rawOptions = {\n ...rawOptions,\n env: {\n ...rawOptions.env,\n ...hermitEnvVars,\n },\n };\n }\n\n if (\n GlobalConfig.get('binarySource') === 'global' &&\n opts.toolConstraints?.length\n ) {\n logger.once.debug(\n { toolConstraints: opts.toolConstraints },\n 'Ignoring tool contraints because of `binarySource=global`',\n );\n }\n\n return { rawCommands, rawOptions };\n}\n\nexport async function exec(\n cmd: string | string[],\n opts: ExecOptions = {},\n): Promise<ExecResult> {\n const { docker } = opts;\n const dockerChildPrefix = GlobalConfig.get('dockerChildPrefix', 'renovate_');\n\n const { rawCommands, rawOptions } = await prepareRawExec(cmd, opts);\n const useDocker = isDocker(docker);\n\n let res: ExecResult = { stdout: '', stderr: '' };\n for (const rawCmd of rawCommands) {\n const startTime = Date.now();\n if (useDocker) {\n await removeDockerContainer(sideCarImage, dockerChildPrefix);\n }\n logger.debug({ command: rawCmd }, 'Executing command');\n logger.trace({ commandOptions: rawOptions }, 'Command options');\n try {\n res = await rawExec(rawCmd, rawOptions);\n } catch (err) {\n const durationMs = Math.round(Date.now() - startTime);\n logger.debug({ err, durationMs }, 'rawExec err');\n if (useDocker) {\n await removeDockerContainer(sideCarImage, dockerChildPrefix).catch(\n (removeErr: Error) => {\n const message: string = err.message;\n throw new Error(\n `Error: \"${removeErr.message}\" - Original Error: \"${message}\"`,\n );\n },\n );\n }\n if (err.signal === `SIGTERM`) {\n logger.debug(\n { err },\n 'exec interrupted by SIGTERM - run needs to be aborted',\n );\n throw new Error(TEMPORARY_ERROR);\n }\n throw err;\n }\n const durationMs = Math.round(Date.now() - startTime);\n logger.debug(\n {\n durationMs,\n stdout: res.stdout,\n stderr: res.stderr,\n },\n 'exec completed',\n );\n }\n\n return res;\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/util/exec/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { isNonEmptyString } from '@sindresorhus/is';\nimport upath from 'upath';\nimport { GlobalConfig } from '../../config/global';\nimport { TEMPORARY_ERROR } from '../../constants/error-messages';\nimport { logger } from '../../logger';\nimport { getCustomEnv, getUserEnv } from '../env';\nimport { rawExec } from './common';\nimport { generateInstallCommands, isDynamicInstall } from './containerbase';\nimport {\n generateDockerCommand,\n removeDockerContainer,\n sideCarImage,\n} from './docker';\nimport { getHermitEnvs, isHermit } from './hermit';\nimport type {\n DockerOptions,\n ExecOptions,\n ExecResult,\n ExtraEnv,\n Opt,\n RawExecOptions,\n} from './types';\nimport { getChildEnv } from './utils';\n\nfunction dockerEnvVars(extraEnv: ExtraEnv, childEnv: ExtraEnv): string[] {\n const extraEnvKeys = Object.keys(extraEnv);\n return extraEnvKeys.filter((key) => isNonEmptyString(childEnv[key]));\n}\n\nfunction getCwd({ cwd, cwdFile }: ExecOptions): string | undefined {\n const defaultCwd = GlobalConfig.get('localDir');\n const paramCwd = cwdFile\n ? upath.join(defaultCwd, upath.dirname(cwdFile))\n : cwd;\n return paramCwd ?? defaultCwd;\n}\n\nfunction getRawExecOptions(opts: ExecOptions): RawExecOptions {\n const defaultExecutionTimeout = GlobalConfig.get('executionTimeout');\n const childEnv = getChildEnv(opts);\n const cwd = getCwd(opts);\n let timeout = opts.timeout;\n // Set default timeout config.executionTimeout if specified; othrwise to 15 minutes\n if (!timeout) {\n if (defaultExecutionTimeout) {\n timeout = defaultExecutionTimeout * 60 * 1000;\n } else {\n timeout = 15 * 60 * 1000;\n }\n }\n\n // Set default max buffer size to 10MB\n const maxBuffer = opts.maxBuffer ?? 10 * 1024 * 1024;\n\n return {\n cwd,\n env: childEnv,\n maxBuffer,\n timeout,\n ...(opts.shell !== undefined && { shell: opts.shell }),\n stdin: 'pipe',\n stdout: opts.ignoreStdout ? 'ignore' : 'pipe',\n stderr: 'pipe',\n };\n}\n\nfunction isDocker(docker: Opt<DockerOptions>): docker is DockerOptions {\n return GlobalConfig.get('binarySource') === 'docker' && !!docker;\n}\n\ninterface RawExecArguments {\n rawCommands: string[];\n rawOptions: RawExecOptions;\n}\n\nasync function prepareRawExec(\n cmd: string | string[],\n opts: ExecOptions,\n): Promise<RawExecArguments> {\n const { docker } = opts;\n const preCommands = opts.preCommands ?? [];\n const customEnvVariables = getCustomEnv();\n const userConfiguredEnv = getUserEnv();\n const { containerbaseDir, binarySource } = GlobalConfig.get();\n\n if (binarySource === 'docker' || binarySource === 'install') {\n logger.debug(`Setting CONTAINERBASE_CACHE_DIR to ${containerbaseDir!}`);\n opts.env ??= {};\n opts.env.CONTAINERBASE_CACHE_DIR = containerbaseDir;\n }\n\n let rawOptions = getRawExecOptions(opts);\n\n let rawCommands = typeof cmd === 'string' ? [cmd] : cmd;\n\n if (isDocker(docker)) {\n logger.debug({ image: sideCarImage }, 'Using docker to execute');\n const extraEnv = {\n ...opts.extraEnv,\n ...customEnvVariables,\n ...userConfiguredEnv,\n };\n const childEnv = getChildEnv(opts);\n const envVars = [\n ...dockerEnvVars(extraEnv, childEnv),\n 'CONTAINERBASE_CACHE_DIR',\n ];\n const cwd = getCwd(opts);\n const dockerOptions: DockerOptions = { ...docker, cwd, envVars };\n const dockerCommand = await generateDockerCommand(\n rawCommands,\n [\n ...(await generateInstallCommands(opts.toolConstraints)),\n ...preCommands,\n ],\n dockerOptions,\n );\n rawCommands = [dockerCommand];\n } else if (isDynamicInstall(opts.toolConstraints)) {\n logger.debug('Using containerbase dynamic installs');\n rawCommands = [\n ...(await generateInstallCommands(opts.toolConstraints)),\n ...preCommands,\n ...rawCommands,\n ];\n } else if (isHermit()) {\n const hermitEnvVars = await getHermitEnvs(rawOptions);\n logger.debug(\n { hermitEnvVars },\n 'merging hermit environment variables into the execution options',\n );\n rawOptions = {\n ...rawOptions,\n env: {\n ...rawOptions.env,\n ...hermitEnvVars,\n },\n };\n }\n\n if (\n GlobalConfig.get('binarySource') === 'global' &&\n opts.toolConstraints?.length\n ) {\n logger.once.debug(\n { toolConstraints: opts.toolConstraints },\n 'Ignoring tool contraints because of `binarySource=global`',\n );\n }\n\n return { rawCommands, rawOptions };\n}\n\nexport async function exec(\n cmd: string | string[],\n opts: ExecOptions = {},\n): Promise<ExecResult> {\n const { docker } = opts;\n const dockerChildPrefix = GlobalConfig.get('dockerChildPrefix', 'renovate_');\n\n const { rawCommands, rawOptions } = await prepareRawExec(cmd, opts);\n const useDocker = isDocker(docker);\n\n let res: ExecResult = { stdout: '', stderr: '' };\n for (const rawCmd of rawCommands) {\n const startTime = Date.now();\n if (useDocker) {\n await removeDockerContainer(sideCarImage, dockerChildPrefix);\n }\n logger.debug({ command: rawCmd }, 'Executing command');\n logger.trace({ commandOptions: rawOptions }, 'Command options');\n try {\n res = await rawExec(rawCmd, rawOptions);\n } catch (err) {\n const durationMs = Math.round(Date.now() - startTime);\n logger.debug({ err, durationMs }, 'rawExec err');\n if (useDocker) {\n await removeDockerContainer(sideCarImage, dockerChildPrefix).catch(\n (removeErr: Error) => {\n const message: string = err.message;\n throw new Error(\n `Error: \"${removeErr.message}\" - Original Error: \"${message}\"`,\n );\n },\n );\n }\n if (err.signal === `SIGTERM`) {\n logger.debug(\n { err },\n 'exec interrupted by SIGTERM - run needs to be aborted',\n );\n throw new Error(TEMPORARY_ERROR);\n }\n throw err;\n }\n const durationMs = Math.round(Date.now() - startTime);\n logger.debug(\n {\n durationMs,\n stdout: res.stdout,\n stderr: res.stderr,\n },\n 'exec completed',\n );\n }\n\n return res;\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "42.71.2",
4
+ "version": "42.71.3",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -1,7 +1,7 @@
1
1
  {
2
- "title": "JSON schema for Renovate 42.71.2 config files (https://renovatebot.com/)",
2
+ "title": "JSON schema for Renovate 42.71.3 config files (https://renovatebot.com/)",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
- "x-renovate-version": "42.71.2",
4
+ "x-renovate-version": "42.71.3",
5
5
  "allowComments": true,
6
6
  "type": "object",
7
7
  "properties": {