diff --git a/lib/entry-points.js b/lib/entry-points.js index 095350d51..12bdf418f 100644 --- a/lib/entry-points.js +++ b/lib/entry-points.js @@ -150143,14 +150143,14 @@ async function cachePrefix(codeql, language) { // src/config-utils.ts var OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 14e3; -var OVERLAY_MINIMUM_DISK_SPACE_FEATURES = [ - ["overlay_analysis_min_disk_8_gb" /* OverlayAnalysisMinDisk8Gb */, 8e3], - ["overlay_analysis_min_disk_9_gb" /* OverlayAnalysisMinDisk9Gb */, 9e3], - ["overlay_analysis_min_disk_10_gb" /* OverlayAnalysisMinDisk10Gb */, 1e4], - ["overlay_analysis_min_disk_11_gb" /* OverlayAnalysisMinDisk11Gb */, 11e3], - ["overlay_analysis_min_disk_12_gb" /* OverlayAnalysisMinDisk12Gb */, 12e3], - ["overlay_analysis_min_disk_13_gb" /* OverlayAnalysisMinDisk13Gb */, 13e3] -]; +var OVERLAY_MINIMUM_DISK_SPACE_MB_BY_FEATURE = { + ["overlay_analysis_min_disk_8_gb" /* OverlayAnalysisMinDisk8Gb */]: 8e3, + ["overlay_analysis_min_disk_9_gb" /* OverlayAnalysisMinDisk9Gb */]: 9e3, + ["overlay_analysis_min_disk_10_gb" /* OverlayAnalysisMinDisk10Gb */]: 1e4, + ["overlay_analysis_min_disk_11_gb" /* OverlayAnalysisMinDisk11Gb */]: 11e3, + ["overlay_analysis_min_disk_12_gb" /* OverlayAnalysisMinDisk12Gb */]: 12e3, + ["overlay_analysis_min_disk_13_gb" /* OverlayAnalysisMinDisk13Gb */]: 13e3 +}; var OVERLAY_MINIMUM_MEMORY_MB = 5 * 1024; var CODEQL_VERSION_REDUCED_OVERLAY_MEMORY_USAGE = "2.24.3"; async function getSupportedLanguageMap(codeql, logger) { @@ -150402,7 +150402,9 @@ async function checkOverlayAnalysisFeatureEnabled(features, codeql, languages, c } async function getMinimumDiskSpaceMb(features) { let minimumMb = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB; - for (const [feature, thresholdMb] of OVERLAY_MINIMUM_DISK_SPACE_FEATURES) { + for (const [feature, thresholdMb] of Object.entries( + OVERLAY_MINIMUM_DISK_SPACE_MB_BY_FEATURE + )) { if (await features.getValue(feature)) { minimumMb = Math.min(minimumMb, thresholdMb); } diff --git a/src/config-utils.ts b/src/config-utils.ts index 6b9c41e3b..0a6ced00a 100644 --- a/src/config-utils.ts +++ b/src/config-utils.ts @@ -103,26 +103,21 @@ export { type Config } from "./config/action-config"; * variable. * * This threshold can be lowered by the feature flags in - * `OVERLAY_MINIMUM_DISK_SPACE_FEATURES`. + * `OVERLAY_MINIMUM_DISK_SPACE_MB_BY_FEATURE`. */ const OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB = 14000; /** - * Feature flags that lower the minimum available disk space required to perform - * overlay analysis, paired with the threshold (in MB) that each one enables. - * - * If several of these are enabled, the lowest threshold takes effect. + * Minimum available disk space (in MB) enabled by each overlay feature flag. */ -const OVERLAY_MINIMUM_DISK_SPACE_FEATURES: ReadonlyArray< - [FeatureWithoutCLI, number] -> = [ - [Feature.OverlayAnalysisMinDisk8Gb, 8000], - [Feature.OverlayAnalysisMinDisk9Gb, 9000], - [Feature.OverlayAnalysisMinDisk10Gb, 10000], - [Feature.OverlayAnalysisMinDisk11Gb, 11000], - [Feature.OverlayAnalysisMinDisk12Gb, 12000], - [Feature.OverlayAnalysisMinDisk13Gb, 13000], -]; +const OVERLAY_MINIMUM_DISK_SPACE_MB_BY_FEATURE = { + [Feature.OverlayAnalysisMinDisk8Gb]: 8000, + [Feature.OverlayAnalysisMinDisk9Gb]: 9000, + [Feature.OverlayAnalysisMinDisk10Gb]: 10000, + [Feature.OverlayAnalysisMinDisk11Gb]: 11000, + [Feature.OverlayAnalysisMinDisk12Gb]: 12000, + [Feature.OverlayAnalysisMinDisk13Gb]: 13000, +} satisfies Partial>; /** * The minimum memory (in MB) that must be available for CodeQL to perform overlay analysis. If @@ -606,8 +601,10 @@ async function getMinimumDiskSpaceMb( features: FeatureEnablement, ): Promise { let minimumMb = OVERLAY_MINIMUM_AVAILABLE_DISK_SPACE_MB; - for (const [feature, thresholdMb] of OVERLAY_MINIMUM_DISK_SPACE_FEATURES) { - if (await features.getValue(feature)) { + for (const [feature, thresholdMb] of Object.entries( + OVERLAY_MINIMUM_DISK_SPACE_MB_BY_FEATURE, + )) { + if (await features.getValue(feature as FeatureWithoutCLI)) { minimumMb = Math.min(minimumMb, thresholdMb); } } diff --git a/src/feature-flags.ts b/src/feature-flags.ts index 66532cd85..7abccf60c 100644 --- a/src/feature-flags.ts +++ b/src/feature-flags.ts @@ -122,16 +122,34 @@ export enum Feature { */ OverlayAnalysisMatchCodeqlVersionDryRun = "overlay_analysis_match_codeql_version_dry_run", /** - * Feature flags that lower the amount of available disk space that the overlay hardware check - * requires. The lowest threshold that is enabled takes effect; if none are enabled, the default - * threshold applies. These flags have no effect if `OverlayAnalysisSkipResourceChecks` is - * enabled. + * Lowers the overlay minimum available disk space to 8 GB. The lowest enabled limit wins; if + * none are enabled, the default applies. */ OverlayAnalysisMinDisk8Gb = "overlay_analysis_min_disk_8_gb", + /** + * Lowers the overlay minimum available disk space to 9 GB. The lowest enabled limit wins; if + * none are enabled, the default applies. + */ OverlayAnalysisMinDisk9Gb = "overlay_analysis_min_disk_9_gb", + /** + * Lowers the overlay minimum available disk space to 10 GB. The lowest enabled limit wins; if + * none are enabled, the default applies. + */ OverlayAnalysisMinDisk10Gb = "overlay_analysis_min_disk_10_gb", + /** + * Lowers the overlay minimum available disk space to 11 GB. The lowest enabled limit wins; if + * none are enabled, the default applies. + */ OverlayAnalysisMinDisk11Gb = "overlay_analysis_min_disk_11_gb", + /** + * Lowers the overlay minimum available disk space to 12 GB. The lowest enabled limit wins; if + * none are enabled, the default applies. + */ OverlayAnalysisMinDisk12Gb = "overlay_analysis_min_disk_12_gb", + /** + * Lowers the overlay minimum available disk space to 13 GB. The lowest enabled limit wins; if + * none are enabled, the default applies. + */ OverlayAnalysisMinDisk13Gb = "overlay_analysis_min_disk_13_gb", OverlayAnalysisPython = "overlay_analysis_python", OverlayAnalysisRuby = "overlay_analysis_ruby",