mirror of
https://github.com/github/codeql-action.git
synced 2026-10-03 17:41:28 +00:00
Promote OverlayAnalysisResourceChecksV2
This feature has been rolled out to 100% and therefore the default behaviour for some time.
This commit is contained in:
28
lib/entry-points.js
generated
28
lib/entry-points.js
generated
@@ -147382,11 +147382,6 @@ var featureConfig = {
|
|||||||
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_MATCH_CODEQL_VERSION_DRY_RUN",
|
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_MATCH_CODEQL_VERSION_DRY_RUN",
|
||||||
minimumVersion: void 0
|
minimumVersion: void 0
|
||||||
},
|
},
|
||||||
["overlay_analysis_resource_checks_v2" /* OverlayAnalysisResourceChecksV2 */]: {
|
|
||||||
defaultValue: false,
|
|
||||||
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_RESOURCE_CHECKS_V2",
|
|
||||||
minimumVersion: void 0
|
|
||||||
},
|
|
||||||
["overlay_analysis_status_check" /* OverlayAnalysisStatusCheck */]: {
|
["overlay_analysis_status_check" /* OverlayAnalysisStatusCheck */]: {
|
||||||
defaultValue: false,
|
defaultValue: false,
|
||||||
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_STATUS_CHECK",
|
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_STATUS_CHECK",
|
||||||
@@ -149617,10 +149612,8 @@ async function cachePrefix(codeql, language) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// src/config-utils.ts
|
// src/config-utils.ts
|
||||||
var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 2e4;
|
var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 14e3;
|
||||||
var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6;
|
var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1e6;
|
||||||
var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_V2_MB = 14e3;
|
|
||||||
var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_V2_BYTES = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_V2_MB * 1e6;
|
|
||||||
var OVERLAY_MINIMUM_MEMORY_MB = 5 * 1024;
|
var OVERLAY_MINIMUM_MEMORY_MB = 5 * 1024;
|
||||||
var CODEQL_VERSION_REDUCED_OVERLAY_MEMORY_USAGE = "2.24.3";
|
var CODEQL_VERSION_REDUCED_OVERLAY_MEMORY_USAGE = "2.24.3";
|
||||||
async function getSupportedLanguageMap(codeql, logger) {
|
async function getSupportedLanguageMap(codeql, logger) {
|
||||||
@@ -149870,8 +149863,8 @@ async function checkOverlayAnalysisFeatureEnabled(features, codeql, languages, c
|
|||||||
}
|
}
|
||||||
return new Success(void 0);
|
return new Success(void 0);
|
||||||
}
|
}
|
||||||
function runnerHasSufficientDiskSpace(diskUsage, logger, useV2ResourceChecks) {
|
function runnerHasSufficientDiskSpace(diskUsage, logger) {
|
||||||
const minimumDiskSpaceBytes = useV2ResourceChecks ? OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_V2_BYTES : OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES;
|
const minimumDiskSpaceBytes = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES;
|
||||||
if (diskUsage.numAvailableBytes < minimumDiskSpaceBytes) {
|
if (diskUsage.numAvailableBytes < minimumDiskSpaceBytes) {
|
||||||
const diskSpaceMb = Math.round(diskUsage.numAvailableBytes / 1e6);
|
const diskSpaceMb = Math.round(diskUsage.numAvailableBytes / 1e6);
|
||||||
const minimumDiskSpaceMb = Math.round(minimumDiskSpaceBytes / 1e6);
|
const minimumDiskSpaceMb = Math.round(minimumDiskSpaceBytes / 1e6);
|
||||||
@@ -149904,8 +149897,8 @@ async function runnerHasSufficientMemory(codeql, ramInput, logger) {
|
|||||||
);
|
);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
async function checkRunnerResources(codeql, diskUsage, ramInput, logger, useV2ResourceChecks) {
|
async function checkRunnerResources(codeql, diskUsage, ramInput, logger) {
|
||||||
if (!runnerHasSufficientDiskSpace(diskUsage, logger, useV2ResourceChecks)) {
|
if (!runnerHasSufficientDiskSpace(diskUsage, logger)) {
|
||||||
return new Failure("insufficient-disk-space" /* InsufficientDiskSpace */);
|
return new Failure("insufficient-disk-space" /* InsufficientDiskSpace */);
|
||||||
}
|
}
|
||||||
if (!await runnerHasSufficientMemory(codeql, ramInput, logger)) {
|
if (!await runnerHasSufficientMemory(codeql, ramInput, logger)) {
|
||||||
@@ -149953,9 +149946,6 @@ async function checkOverlayEnablement(codeql, features, languages, sourceRoot, b
|
|||||||
"overlay_analysis_skip_resource_checks" /* OverlayAnalysisSkipResourceChecks */,
|
"overlay_analysis_skip_resource_checks" /* OverlayAnalysisSkipResourceChecks */,
|
||||||
codeql
|
codeql
|
||||||
);
|
);
|
||||||
const useV2ResourceChecks = await features.getValue(
|
|
||||||
"overlay_analysis_resource_checks_v2" /* OverlayAnalysisResourceChecksV2 */
|
|
||||||
);
|
|
||||||
const checkOverlayStatus = await features.getValue(
|
const checkOverlayStatus = await features.getValue(
|
||||||
"overlay_analysis_status_check" /* OverlayAnalysisStatusCheck */
|
"overlay_analysis_status_check" /* OverlayAnalysisStatusCheck */
|
||||||
);
|
);
|
||||||
@@ -149967,13 +149957,7 @@ async function checkOverlayEnablement(codeql, features, languages, sourceRoot, b
|
|||||||
);
|
);
|
||||||
return new Failure("unable-to-determine-disk-usage" /* UnableToDetermineDiskUsage */);
|
return new Failure("unable-to-determine-disk-usage" /* UnableToDetermineDiskUsage */);
|
||||||
}
|
}
|
||||||
const resourceResult = performResourceChecks && diskUsage !== void 0 ? await checkRunnerResources(
|
const resourceResult = performResourceChecks && diskUsage !== void 0 ? await checkRunnerResources(codeql, diskUsage, ramInput, logger) : new Success(void 0);
|
||||||
codeql,
|
|
||||||
diskUsage,
|
|
||||||
ramInput,
|
|
||||||
logger,
|
|
||||||
useV2ResourceChecks
|
|
||||||
) : new Success(void 0);
|
|
||||||
if (resourceResult.isFailure()) {
|
if (resourceResult.isFailure()) {
|
||||||
return resourceResult;
|
return resourceResult;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1301,7 +1301,6 @@ checkOverlayEnablementMacro.serial(
|
|||||||
features: [
|
features: [
|
||||||
Feature.OverlayAnalysis,
|
Feature.OverlayAnalysis,
|
||||||
Feature.OverlayAnalysisCodeScanningJavascript,
|
Feature.OverlayAnalysisCodeScanningJavascript,
|
||||||
Feature.OverlayAnalysisResourceChecksV2,
|
|
||||||
],
|
],
|
||||||
isDefaultBranch: true,
|
isDefaultBranch: true,
|
||||||
diskUsage: {
|
diskUsage: {
|
||||||
@@ -1315,13 +1314,12 @@ checkOverlayEnablementMacro.serial(
|
|||||||
);
|
);
|
||||||
|
|
||||||
checkOverlayEnablementMacro.serial(
|
checkOverlayEnablementMacro.serial(
|
||||||
"Overlay-base database on default branch if runner disk space is between v2 and v1 limits and v2 resource checks enabled",
|
"Overlay-base database on default branch if runner disk space is above minimum",
|
||||||
{
|
{
|
||||||
languages: [BuiltInLanguage.javascript],
|
languages: [BuiltInLanguage.javascript],
|
||||||
features: [
|
features: [
|
||||||
Feature.OverlayAnalysis,
|
Feature.OverlayAnalysis,
|
||||||
Feature.OverlayAnalysisCodeScanningJavascript,
|
Feature.OverlayAnalysisCodeScanningJavascript,
|
||||||
Feature.OverlayAnalysisResourceChecksV2,
|
|
||||||
],
|
],
|
||||||
isDefaultBranch: true,
|
isDefaultBranch: true,
|
||||||
diskUsage: {
|
diskUsage: {
|
||||||
@@ -1335,25 +1333,6 @@ checkOverlayEnablementMacro.serial(
|
|||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
checkOverlayEnablementMacro.serial(
|
|
||||||
"No overlay-base database on default branch if runner disk space is between v2 and v1 limits and v2 resource checks not enabled",
|
|
||||||
{
|
|
||||||
languages: [BuiltInLanguage.javascript],
|
|
||||||
features: [
|
|
||||||
Feature.OverlayAnalysis,
|
|
||||||
Feature.OverlayAnalysisCodeScanningJavascript,
|
|
||||||
],
|
|
||||||
isDefaultBranch: true,
|
|
||||||
diskUsage: {
|
|
||||||
numAvailableBytes: 15_000_000_000,
|
|
||||||
numTotalBytes: 100_000_000_000,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
disabledReason: OverlayDisabledReason.InsufficientDiskSpace,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
checkOverlayEnablementMacro.serial(
|
checkOverlayEnablementMacro.serial(
|
||||||
"No overlay-base database on default branch if memory flag is too low",
|
"No overlay-base database on default branch if memory flag is too low",
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -102,19 +102,10 @@ export { type Config } from "./config/action-config";
|
|||||||
* analysis unless overlay analysis has been explicitly enabled via environment
|
* analysis unless overlay analysis has been explicitly enabled via environment
|
||||||
* variable.
|
* variable.
|
||||||
*/
|
*/
|
||||||
const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 20000;
|
const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 14000;
|
||||||
const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES =
|
const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES =
|
||||||
OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1_000_000;
|
OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB * 1_000_000;
|
||||||
|
|
||||||
/**
|
|
||||||
* The v2 minimum available disk space (in MB) required to perform overlay
|
|
||||||
* analysis. This is a lower threshold than the v1 limit, allowing overlay
|
|
||||||
* analysis to run on runners with less available disk space.
|
|
||||||
*/
|
|
||||||
const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_V2_MB = 14000;
|
|
||||||
const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_V2_BYTES =
|
|
||||||
OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_V2_MB * 1_000_000;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The minimum memory (in MB) that must be available for CodeQL to perform overlay analysis. If
|
* The minimum memory (in MB) that must be available for CodeQL to perform overlay analysis. If
|
||||||
* CodeQL will be given less memory than this threshold, then the action will not perform overlay
|
* CodeQL will be given less memory than this threshold, then the action will not perform overlay
|
||||||
@@ -592,11 +583,8 @@ async function checkOverlayAnalysisFeatureEnabled(
|
|||||||
function runnerHasSufficientDiskSpace(
|
function runnerHasSufficientDiskSpace(
|
||||||
diskUsage: DiskUsage,
|
diskUsage: DiskUsage,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
useV2ResourceChecks: boolean,
|
|
||||||
): boolean {
|
): boolean {
|
||||||
const minimumDiskSpaceBytes = useV2ResourceChecks
|
const minimumDiskSpaceBytes = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES;
|
||||||
? OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_V2_BYTES
|
|
||||||
: OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_BYTES;
|
|
||||||
if (diskUsage.numAvailableBytes < minimumDiskSpaceBytes) {
|
if (diskUsage.numAvailableBytes < minimumDiskSpaceBytes) {
|
||||||
const diskSpaceMb = Math.round(diskUsage.numAvailableBytes / 1_000_000);
|
const diskSpaceMb = Math.round(diskUsage.numAvailableBytes / 1_000_000);
|
||||||
const minimumDiskSpaceMb = Math.round(minimumDiskSpaceBytes / 1_000_000);
|
const minimumDiskSpaceMb = Math.round(minimumDiskSpaceBytes / 1_000_000);
|
||||||
@@ -651,9 +639,8 @@ async function checkRunnerResources(
|
|||||||
diskUsage: DiskUsage,
|
diskUsage: DiskUsage,
|
||||||
ramInput: string | undefined,
|
ramInput: string | undefined,
|
||||||
logger: Logger,
|
logger: Logger,
|
||||||
useV2ResourceChecks: boolean,
|
|
||||||
): Promise<Result<void, OverlayDisabledReason>> {
|
): Promise<Result<void, OverlayDisabledReason>> {
|
||||||
if (!runnerHasSufficientDiskSpace(diskUsage, logger, useV2ResourceChecks)) {
|
if (!runnerHasSufficientDiskSpace(diskUsage, logger)) {
|
||||||
return new Failure(OverlayDisabledReason.InsufficientDiskSpace);
|
return new Failure(OverlayDisabledReason.InsufficientDiskSpace);
|
||||||
}
|
}
|
||||||
if (!(await runnerHasSufficientMemory(codeql, ramInput, logger))) {
|
if (!(await runnerHasSufficientMemory(codeql, ramInput, logger))) {
|
||||||
@@ -752,9 +739,6 @@ export async function checkOverlayEnablement(
|
|||||||
Feature.OverlayAnalysisSkipResourceChecks,
|
Feature.OverlayAnalysisSkipResourceChecks,
|
||||||
codeql,
|
codeql,
|
||||||
));
|
));
|
||||||
const useV2ResourceChecks = await features.getValue(
|
|
||||||
Feature.OverlayAnalysisResourceChecksV2,
|
|
||||||
);
|
|
||||||
const checkOverlayStatus = await features.getValue(
|
const checkOverlayStatus = await features.getValue(
|
||||||
Feature.OverlayAnalysisStatusCheck,
|
Feature.OverlayAnalysisStatusCheck,
|
||||||
);
|
);
|
||||||
@@ -768,13 +752,7 @@ export async function checkOverlayEnablement(
|
|||||||
}
|
}
|
||||||
const resourceResult =
|
const resourceResult =
|
||||||
performResourceChecks && diskUsage !== undefined
|
performResourceChecks && diskUsage !== undefined
|
||||||
? await checkRunnerResources(
|
? await checkRunnerResources(codeql, diskUsage, ramInput, logger)
|
||||||
codeql,
|
|
||||||
diskUsage,
|
|
||||||
ramInput,
|
|
||||||
logger,
|
|
||||||
useV2ResourceChecks,
|
|
||||||
)
|
|
||||||
: new Success<void>(undefined);
|
: new Success<void>(undefined);
|
||||||
if (resourceResult.isFailure()) {
|
if (resourceResult.isFailure()) {
|
||||||
return resourceResult;
|
return resourceResult;
|
||||||
|
|||||||
@@ -122,11 +122,6 @@ export enum Feature {
|
|||||||
*/
|
*/
|
||||||
OverlayAnalysisMatchCodeqlVersionDryRun = "overlay_analysis_match_codeql_version_dry_run",
|
OverlayAnalysisMatchCodeqlVersionDryRun = "overlay_analysis_match_codeql_version_dry_run",
|
||||||
OverlayAnalysisPython = "overlay_analysis_python",
|
OverlayAnalysisPython = "overlay_analysis_python",
|
||||||
/**
|
|
||||||
* Controls whether lower disk space requirements are used for overlay hardware checks.
|
|
||||||
* Has no effect if `OverlayAnalysisSkipResourceChecks` is enabled.
|
|
||||||
*/
|
|
||||||
OverlayAnalysisResourceChecksV2 = "overlay_analysis_resource_checks_v2",
|
|
||||||
OverlayAnalysisRuby = "overlay_analysis_ruby",
|
OverlayAnalysisRuby = "overlay_analysis_ruby",
|
||||||
/** Controls whether hardware checks are skipped for overlay analysis. */
|
/** Controls whether hardware checks are skipped for overlay analysis. */
|
||||||
OverlayAnalysisSkipResourceChecks = "overlay_analysis_skip_resource_checks",
|
OverlayAnalysisSkipResourceChecks = "overlay_analysis_skip_resource_checks",
|
||||||
@@ -354,11 +349,6 @@ export const featureConfig = {
|
|||||||
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_MATCH_CODEQL_VERSION_DRY_RUN",
|
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_MATCH_CODEQL_VERSION_DRY_RUN",
|
||||||
minimumVersion: undefined,
|
minimumVersion: undefined,
|
||||||
},
|
},
|
||||||
[Feature.OverlayAnalysisResourceChecksV2]: {
|
|
||||||
defaultValue: false,
|
|
||||||
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_RESOURCE_CHECKS_V2",
|
|
||||||
minimumVersion: undefined,
|
|
||||||
},
|
|
||||||
[Feature.OverlayAnalysisStatusCheck]: {
|
[Feature.OverlayAnalysisStatusCheck]: {
|
||||||
defaultValue: false,
|
defaultValue: false,
|
||||||
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_STATUS_CHECK",
|
envVar: "CODEQL_ACTION_OVERLAY_ANALYSIS_STATUS_CHECK",
|
||||||
|
|||||||
Reference in New Issue
Block a user