Merge branch 'main' into henrymercer/bump-minimum-codeql-version
This commit is contained in:
commit
fed45865ba
234 changed files with 26797 additions and 28982 deletions
49
src/util.ts
49
src/util.ts
|
|
@ -16,14 +16,10 @@ import {
|
|||
parsePacksSpecification,
|
||||
prettyPrintPack,
|
||||
} from "./config-utils";
|
||||
import { EnvVar } from "./environment";
|
||||
import { Feature, FeatureEnablement } from "./feature-flags";
|
||||
import { Language } from "./languages";
|
||||
import { Logger } from "./logging";
|
||||
import {
|
||||
CODEQL_ACTION_DISABLE_DUPLICATE_LOCATION_FIX,
|
||||
CODEQL_ACTION_TEST_MODE,
|
||||
EnvVar,
|
||||
} from "./shared-environment";
|
||||
|
||||
/**
|
||||
* Specifies bundle versions that are known to be broken
|
||||
|
|
@ -72,6 +68,9 @@ export interface SarifInvocation {
|
|||
|
||||
export interface SarifResult {
|
||||
ruleId?: string;
|
||||
rule?: {
|
||||
id?: string;
|
||||
};
|
||||
message?: {
|
||||
text?: string;
|
||||
};
|
||||
|
|
@ -158,9 +157,21 @@ export async function withTmpDir<T>(
|
|||
* from committing too much of the available memory to CodeQL.
|
||||
* @returns number
|
||||
*/
|
||||
function getSystemReservedMemoryMegaBytes(): number {
|
||||
async function getSystemReservedMemoryMegaBytes(
|
||||
totalMemoryMegaBytes: number,
|
||||
features: FeatureEnablement
|
||||
): Promise<number> {
|
||||
// Windows needs more memory for OS processes.
|
||||
return 1024 * (process.platform === "win32" ? 1.5 : 1);
|
||||
const fixedAmount = 1024 * (process.platform === "win32" ? 1.5 : 1);
|
||||
|
||||
if (await features.getValue(Feature.ScalingReservedRam)) {
|
||||
// Reserve an additional 2% of the total memory, since the amount used by
|
||||
// the kernel for page tables scales with the size of physical memory.
|
||||
const scaledAmount = 0.02 * totalMemoryMegaBytes;
|
||||
return fixedAmount + scaledAmount;
|
||||
} else {
|
||||
return fixedAmount;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -170,7 +181,10 @@ function getSystemReservedMemoryMegaBytes(): number {
|
|||
*
|
||||
* @returns {number} the amount of RAM to use, in megabytes
|
||||
*/
|
||||
export function getMemoryFlagValue(userInput: string | undefined): number {
|
||||
export async function getMemoryFlagValue(
|
||||
userInput: string | undefined,
|
||||
features: FeatureEnablement
|
||||
): Promise<number> {
|
||||
let memoryToUseMegaBytes: number;
|
||||
if (userInput) {
|
||||
memoryToUseMegaBytes = Number(userInput);
|
||||
|
|
@ -180,7 +194,10 @@ export function getMemoryFlagValue(userInput: string | undefined): number {
|
|||
} else {
|
||||
const totalMemoryBytes = os.totalmem();
|
||||
const totalMemoryMegaBytes = totalMemoryBytes / (1024 * 1024);
|
||||
const reservedMemoryMegaBytes = getSystemReservedMemoryMegaBytes();
|
||||
const reservedMemoryMegaBytes = await getSystemReservedMemoryMegaBytes(
|
||||
totalMemoryMegaBytes,
|
||||
features
|
||||
);
|
||||
memoryToUseMegaBytes = totalMemoryMegaBytes - reservedMemoryMegaBytes;
|
||||
}
|
||||
return Math.floor(memoryToUseMegaBytes);
|
||||
|
|
@ -193,8 +210,12 @@ export function getMemoryFlagValue(userInput: string | undefined): number {
|
|||
*
|
||||
* @returns string
|
||||
*/
|
||||
export function getMemoryFlag(userInput: string | undefined): string {
|
||||
return `--ram=${getMemoryFlagValue(userInput)}`;
|
||||
export async function getMemoryFlag(
|
||||
userInput: string | undefined,
|
||||
features: FeatureEnablement
|
||||
): Promise<string> {
|
||||
const megabytes = await getMemoryFlagValue(userInput, features);
|
||||
return `--ram=${megabytes}`;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -623,7 +644,7 @@ export function getMlPoweredJsQueriesStatus(config: Config): string {
|
|||
* In test mode, we don't upload SARIF results or status reports to the GitHub API.
|
||||
*/
|
||||
export function isInTestMode(): boolean {
|
||||
return process.env[CODEQL_ACTION_TEST_MODE] === "true";
|
||||
return process.env[EnvVar.TEST_MODE] === "true";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -887,10 +908,10 @@ export function fixInvalidNotificationsInFile(
|
|||
outputPath: string,
|
||||
logger: Logger
|
||||
): void {
|
||||
if (process.env[CODEQL_ACTION_DISABLE_DUPLICATE_LOCATION_FIX] === "true") {
|
||||
if (process.env[EnvVar.DISABLE_DUPLICATE_LOCATION_FIX] === "true") {
|
||||
logger.info(
|
||||
"SARIF notification object duplicate location fix disabled by the " +
|
||||
`${CODEQL_ACTION_DISABLE_DUPLICATE_LOCATION_FIX} environment variable.`
|
||||
`${EnvVar.DISABLE_DUPLICATE_LOCATION_FIX} environment variable.`
|
||||
);
|
||||
fs.renameSync(inputPath, outputPath);
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue