C++: Handle codeql_action_cpp_build_mode_none feature flag

This commit is contained in:
Calum Grant 2024-10-24 16:46:58 +01:00
parent 467d7e6d9e
commit 0d2a78f583
6 changed files with 37 additions and 20 deletions

12
lib/feature-flags.js generated
View file

@ -54,8 +54,7 @@ var Feature;
(function (Feature) {
Feature["ArtifactV4Upgrade"] = "artifact_v4_upgrade";
Feature["CleanupTrapCaches"] = "cleanup_trap_caches";
Feature["CppBuildModeNoneDisabled"] = "cpp_build_mode_none_disabled";
Feature["CppBuildModeNoneEnabled"] = "cpp_build_mode_none";
Feature["CppBuildModeNone"] = "cpp_build_mode_none";
Feature["CppDependencyInstallation"] = "cpp_dependency_installation_enabled";
Feature["DiffInformedQueries"] = "diff_informed_queries";
Feature["DisableCsharpBuildless"] = "disable_csharp_buildless";
@ -78,14 +77,9 @@ exports.featureConfig = {
envVar: "CODEQL_ACTION_CLEANUP_TRAP_CACHES",
minimumVersion: undefined,
},
[Feature.CppBuildModeNoneDisabled]: {
[Feature.CppBuildModeNone]: {
defaultValue: false,
envVar: "CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE_DISABLED",
minimumVersion: undefined,
},
[Feature.CppBuildModeNoneEnabled]: {
defaultValue: false,
envVar: "CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE_ENABLED",
envVar: "CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE",
minimumVersion: undefined,
},
[Feature.CppDependencyInstallation]: {

File diff suppressed because one or more lines are too long

15
lib/init-action.js generated
View file

@ -316,6 +316,21 @@ async function run() {
core.exportVariable(envVar, "false");
}
}
// Set CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE
if (config.languages.includes(languages_1.Language.cpp)) {
const bmn_var = "CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE";
if (process.env[bmn_var]) {
logger.info("CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE is already set");
}
else if (await features.getValue(feature_flags_1.Feature.CppBuildModeNone, codeql)) {
logger.info("Enabling C++ build-mode: none");
core.exportVariable(bmn_var, "true");
}
else {
logger.info("Disabling C++ build-mode: none");
core.exportVariable(bmn_var, "false");
}
}
// For CLI versions <2.15.1, build tracing caused errors in MacOS ARM machines with
// System Integrity Protection (SIP) disabled.
if (!(await (0, util_1.codeQlVersionAtLeast)(codeql, "2.15.1")) &&

File diff suppressed because one or more lines are too long

View file

@ -50,8 +50,7 @@ export interface FeatureEnablement {
export enum Feature {
ArtifactV4Upgrade = "artifact_v4_upgrade",
CleanupTrapCaches = "cleanup_trap_caches",
CppBuildModeNoneDisabled = "cpp_build_mode_none_disabled",
CppBuildModeNoneEnabled = "cpp_build_mode_none",
CppBuildModeNone = "cpp_build_mode_none",
CppDependencyInstallation = "cpp_dependency_installation_enabled",
DiffInformedQueries = "diff_informed_queries",
DisableCsharpBuildless = "disable_csharp_buildless",
@ -105,14 +104,9 @@ export const featureConfig: Record<
envVar: "CODEQL_ACTION_CLEANUP_TRAP_CACHES",
minimumVersion: undefined,
},
[Feature.CppBuildModeNoneDisabled]: {
[Feature.CppBuildModeNone]: {
defaultValue: false,
envVar: "CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE_DISABLED",
minimumVersion: undefined,
},
[Feature.CppBuildModeNoneEnabled]: {
defaultValue: false,
envVar: "CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE_ENABLED",
envVar: "CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE",
minimumVersion: undefined,
},
[Feature.CppDependencyInstallation]: {

View file

@ -546,6 +546,20 @@ async function run() {
}
}
// Set CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE
if (config.languages.includes(Language.cpp)) {
const bmn_var = "CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE";
if (process.env[bmn_var]) {
logger.info("CODEQL_EXTRACTOR_CPP_BUILD_MODE_NONE is already set");
} else if (await features.getValue(Feature.CppBuildModeNone, codeql)) {
logger.info("Enabling C++ build-mode: none");
core.exportVariable(bmn_var, "true");
} else {
logger.info("Disabling C++ build-mode: none");
core.exportVariable(bmn_var, "false");
}
}
// For CLI versions <2.15.1, build tracing caused errors in MacOS ARM machines with
// System Integrity Protection (SIP) disabled.
if (