Merge pull request #2087 from github/sashabu/cpp-trap-caching

C++: Add feature flag for TRAP caching.
This commit is contained in:
Alexandre Boulgakov 2024-01-22 14:25:34 +00:00 committed by GitHub
commit c6fd1aa12c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 47 additions and 2 deletions

6
lib/feature-flags.js generated
View file

@ -49,6 +49,7 @@ exports.CODEQL_VERSION_FINE_GRAINED_PARALLELISM = "2.15.1";
var Feature;
(function (Feature) {
Feature["CppDependencyInstallation"] = "cpp_dependency_installation_enabled";
Feature["CppTrapCachingEnabled"] = "cpp_trap_caching_enabled";
Feature["DisableKotlinAnalysisEnabled"] = "disable_kotlin_analysis_enabled";
Feature["DisablePythonDependencyInstallationEnabled"] = "disable_python_dependency_installation_enabled";
Feature["PythonDefaultIsToSkipDependencyInstallationEnabled"] = "python_default_is_to_skip_dependency_installation_enabled";
@ -62,6 +63,11 @@ exports.featureConfig = {
minimumVersion: "2.15.0",
defaultValue: false,
},
[Feature.CppTrapCachingEnabled]: {
envVar: "CODEQL_CPP_TRAP_CACHING",
minimumVersion: "2.16.1",
defaultValue: false,
},
[Feature.DisableKotlinAnalysisEnabled]: {
envVar: "CODEQL_DISABLE_KOTLIN_ANALYSIS",
minimumVersion: undefined,

File diff suppressed because one or more lines are too long

15
lib/init-action.js generated
View file

@ -244,6 +244,21 @@ async function run() {
core.exportVariable(envVar, "true");
}
}
if (config.languages.includes(languages_1.Language.cpp)) {
const envVar = "CODEQL_EXTRACTOR_CPP_TRAP_CACHING";
if (process.env[envVar]) {
logger.info(`Environment variable ${envVar} already set. Not en/disabling CodeQL C++ TRAP caching support`);
}
else if (getTrapCachingEnabled() &&
(await features.getValue(feature_flags_1.Feature.CppTrapCachingEnabled, codeql))) {
logger.info("Enabling CodeQL C++ TRAP caching support");
core.exportVariable(envVar, "true");
}
else {
logger.info("Disabling CodeQL C++ TRAP caching support");
core.exportVariable(envVar, "false");
}
}
// Disable Python dependency extraction if feature flag set
if (await (0, feature_flags_1.isPythonDependencyInstallationDisabled)(codeql, features)) {
core.exportVariable("CODEQL_EXTRACTOR_PYTHON_DISABLE_LIBRARY_EXTRACTION", "true");

File diff suppressed because one or more lines are too long

View file

@ -45,6 +45,7 @@ export interface FeatureEnablement {
*/
export enum Feature {
CppDependencyInstallation = "cpp_dependency_installation_enabled",
CppTrapCachingEnabled = "cpp_trap_caching_enabled",
DisableKotlinAnalysisEnabled = "disable_kotlin_analysis_enabled",
DisablePythonDependencyInstallationEnabled = "disable_python_dependency_installation_enabled",
PythonDefaultIsToSkipDependencyInstallationEnabled = "python_default_is_to_skip_dependency_installation_enabled",
@ -62,6 +63,11 @@ export const featureConfig: Record<
minimumVersion: "2.15.0",
defaultValue: false,
},
[Feature.CppTrapCachingEnabled]: {
envVar: "CODEQL_CPP_TRAP_CACHING",
minimumVersion: "2.16.1",
defaultValue: false,
},
[Feature.DisableKotlinAnalysisEnabled]: {
envVar: "CODEQL_DISABLE_KOTLIN_ANALYSIS",
minimumVersion: undefined,

View file

@ -442,6 +442,24 @@ async function run() {
}
}
if (config.languages.includes(Language.cpp)) {
const envVar = "CODEQL_EXTRACTOR_CPP_TRAP_CACHING";
if (process.env[envVar]) {
logger.info(
`Environment variable ${envVar} already set. Not en/disabling CodeQL C++ TRAP caching support`,
);
} else if (
getTrapCachingEnabled() &&
(await features.getValue(Feature.CppTrapCachingEnabled, codeql))
) {
logger.info("Enabling CodeQL C++ TRAP caching support");
core.exportVariable(envVar, "true");
} else {
logger.info("Disabling CodeQL C++ TRAP caching support");
core.exportVariable(envVar, "false");
}
}
// Disable Python dependency extraction if feature flag set
if (await isPythonDependencyInstallationDisabled(codeql, features)) {
core.exportVariable(