Promote OverlayAnalysisResourceChecksV2

This feature has been rolled out to 100% and therefore the default behaviour for some time.
This commit is contained in:
Michael B. Gale
2026-08-11 14:03:49 +01:00
parent 7d9249f5a5
commit c205ff6f09
4 changed files with 11 additions and 80 deletions

28
lib/entry-points.js generated
View File

@@ -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;
} }

View File

@@ -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",
{ {

View File

@@ -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;

View File

@@ -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",