diff --git a/analyze/action.yml b/analyze/action.yml index f2083cc82..17a374299 100644 --- a/analyze/action.yml +++ b/analyze/action.yml @@ -12,6 +12,9 @@ inputs: description: Upload the SARIF file required: false default: true + ram: + description: Override the amount of memory in MB to be used by CodeQL. By default, almost all the memory of the machine is used. + required: false token: default: ${{ github.token }} matrix: diff --git a/lib/finalize-db.js b/lib/finalize-db.js index 8baea6a93..99f5ea7f3 100644 --- a/lib/finalize-db.js +++ b/lib/finalize-db.js @@ -11,12 +11,30 @@ const core = __importStar(require("@actions/core")); const exec = __importStar(require("@actions/exec")); const io = __importStar(require("@actions/io")); const fs = __importStar(require("fs")); +const os = __importStar(require("os")); const path = __importStar(require("path")); const configUtils = __importStar(require("./config-utils")); const externalQueries = __importStar(require("./external-queries")); const sharedEnv = __importStar(require("./shared-environment")); const upload_lib = __importStar(require("./upload-lib")); const util = __importStar(require("./util")); +function getMemoryFlag() { + let memoryToUseMegaBytes; + const memoryToUseString = core.getInput("ram"); + if (memoryToUseString) { + memoryToUseMegaBytes = Number(memoryToUseString); + if (Number.isNaN(memoryToUseMegaBytes) || memoryToUseMegaBytes <= 0) { + throw new Error("Invalid RAM setting \"" + memoryToUseString + "\", specified."); + } + } + else { + const totalMemoryBytes = os.totalmem(); + const totalMemoryMegaBytes = totalMemoryBytes / (1024 * 1024); + const systemReservedMemoryMegaBytes = 256; + memoryToUseMegaBytes = totalMemoryMegaBytes - systemReservedMemoryMegaBytes; + } + return "--ram=" + Math.floor(memoryToUseMegaBytes); +} async function createdDBForScannedLanguages(codeqlCmd, databaseFolder) { const scannedLanguages = process.env[sharedEnv.CODEQL_ACTION_SCANNED_LANGUAGES]; if (scannedLanguages) { @@ -97,6 +115,7 @@ async function runQueries(codeqlCmd, databaseFolder, sarifFolder, config) { await exec.exec(codeqlCmd, [ 'database', 'analyze', + getMemoryFlag(), path.join(databaseFolder, database), '--format=sarif-latest', '--output=' + sarifFile, diff --git a/lib/finalize-db.js.map b/lib/finalize-db.js.map index 68aebece7..50b3c0923 100644 --- a/lib/finalize-db.js.map +++ b/lib/finalize-db.js.map @@ -1 +1 @@ -{"version":3,"file":"finalize-db.js","sourceRoot":"","sources":["../src/finalize-db.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"finalize-db.js","sourceRoot":"","sources":["../src/finalize-db.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/upload-lib.js b/lib/upload-lib.js index 7533ce4e2..19b9e685a 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -112,6 +112,15 @@ async function upload(input) { } } exports.upload = upload; +// Counts the number of results in the given SARIF file +function countResultsInSarif(sarif) { + let numResults = 0; + for (const run of JSON.parse(sarif).runs) { + numResults += run.results.length; + } + return numResults; +} +exports.countResultsInSarif = countResultsInSarif; // Uploads the given set of sarif files. // Returns true iff the upload occurred and succeeded async function uploadFiles(sarifFiles) { @@ -158,6 +167,10 @@ async function uploadFiles(sarifFiles) { "started_at": startedAt, "tool_names": toolNames, }); + // Log some useful debug info about the info + core.debug("Raw upload size: " + sarifPayload.length + " bytes"); + core.debug("Base64 zipped upload size: " + zipped_sarif.length + " bytes"); + core.debug("Number of results in upload: " + countResultsInSarif(sarifPayload)); // Make the upload succeeded = await uploadPayload(payload); } diff --git a/lib/upload-lib.js.map b/lib/upload-lib.js.map index 3aa78028c..55db2311d 100644 --- a/lib/upload-lib.js.map +++ b/lib/upload-lib.js.map @@ -1 +1 @@ -{"version":3,"file":"upload-lib.js","sourceRoot":"","sources":["../src/upload-lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"upload-lib.js","sourceRoot":"","sources":["../src/upload-lib.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/finalize-db.ts b/src/finalize-db.ts index f58ab6c1c..a49bb7852 100644 --- a/src/finalize-db.ts +++ b/src/finalize-db.ts @@ -2,6 +2,7 @@ import * as core from '@actions/core'; import * as exec from '@actions/exec'; import * as io from '@actions/io'; import * as fs from 'fs'; +import * as os from 'os'; import * as path from 'path'; import * as configUtils from './config-utils'; @@ -10,6 +11,23 @@ import * as sharedEnv from './shared-environment'; import * as upload_lib from './upload-lib'; import * as util from './util'; +function getMemoryFlag(): string { + let memoryToUseMegaBytes: number; + const memoryToUseString = core.getInput("ram"); + if (memoryToUseString) { + memoryToUseMegaBytes = Number(memoryToUseString); + if (Number.isNaN(memoryToUseMegaBytes) || memoryToUseMegaBytes <= 0) { + throw new Error("Invalid RAM setting \"" + memoryToUseString + "\", specified."); + } + } else { + const totalMemoryBytes = os.totalmem(); + const totalMemoryMegaBytes = totalMemoryBytes / (1024 * 1024); + const systemReservedMemoryMegaBytes = 256; + memoryToUseMegaBytes = totalMemoryMegaBytes - systemReservedMemoryMegaBytes; + } + return "--ram=" + Math.floor(memoryToUseMegaBytes); +} + async function createdDBForScannedLanguages(codeqlCmd: string, databaseFolder: string) { const scannedLanguages = process.env[sharedEnv.CODEQL_ACTION_SCANNED_LANGUAGES]; if (scannedLanguages) { @@ -113,6 +131,7 @@ async function runQueries(codeqlCmd: string, databaseFolder: string, sarifFolder await exec.exec(codeqlCmd, [ 'database', 'analyze', + getMemoryFlag(), path.join(databaseFolder, database), '--format=sarif-latest', '--output=' + sarifFile, diff --git a/src/upload-lib.ts b/src/upload-lib.ts index 4a30e5250..0db8ee40b 100644 --- a/src/upload-lib.ts +++ b/src/upload-lib.ts @@ -114,6 +114,15 @@ export async function upload(input: string): Promise { } } +// Counts the number of results in the given SARIF file +export function countResultsInSarif(sarif: string): number { + let numResults = 0; + for (const run of JSON.parse(sarif).runs) { + numResults += run.results.length; + } + return numResults; +} + // Uploads the given set of sarif files. // Returns true iff the upload occurred and succeeded async function uploadFiles(sarifFiles: string[]): Promise { @@ -168,6 +177,11 @@ async function uploadFiles(sarifFiles: string[]): Promise { "tool_names": toolNames, }); + // Log some useful debug info about the info + core.debug("Raw upload size: " + sarifPayload.length + " bytes"); + core.debug("Base64 zipped upload size: " + zipped_sarif.length + " bytes"); + core.debug("Number of results in upload: " + countResultsInSarif(sarifPayload)); + // Make the upload succeeded = await uploadPayload(payload);