mirror of
https://github.com/github/codeql-action.git
synced 2025-12-29 02:30:11 +08:00
Merge pull request #3117 from github/mbg/csharp/new-cache-key-calculation
Support non-lock files for C# cache key computation
This commit is contained in:
5
lib/analyze-action-post.js
generated
5
lib/analyze-action-post.js
generated
@@ -119928,6 +119928,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
|
||||
202
lib/analyze-action.js
generated
202
lib/analyze-action.js
generated
@@ -88173,6 +88173,7 @@ var fs6 = __toESM(require("fs"));
|
||||
var path6 = __toESM(require("path"));
|
||||
|
||||
// src/caching-utils.ts
|
||||
var crypto = __toESM(require("crypto"));
|
||||
var core6 = __toESM(require_core());
|
||||
async function getTotalCacheSize(paths, logger, quiet = false) {
|
||||
const sizes = await Promise.all(
|
||||
@@ -88183,6 +88184,11 @@ async function getTotalCacheSize(paths, logger, quiet = false) {
|
||||
function shouldStoreCache(kind) {
|
||||
return kind === "full" /* Full */ || kind === "store" /* Store */;
|
||||
}
|
||||
var cacheKeyHashLength = 16;
|
||||
function createCacheKeyHash(components) {
|
||||
const componentsJson = JSON.stringify(components);
|
||||
return crypto.createHash("sha256").update(componentsJson).digest("hex").substring(0, cacheKeyHashLength);
|
||||
}
|
||||
|
||||
// src/config/db-config.ts
|
||||
var jsonschema = __toESM(require_lib3());
|
||||
@@ -88208,7 +88214,6 @@ var bundleVersion = "codeql-bundle-v2.23.3";
|
||||
var cliVersion = "2.23.3";
|
||||
|
||||
// src/overlay-database-utils.ts
|
||||
var crypto = __toESM(require("crypto"));
|
||||
var fs3 = __toESM(require("fs"));
|
||||
var path3 = __toESM(require("path"));
|
||||
var actionsCache = __toESM(require_cache3());
|
||||
@@ -88620,10 +88625,6 @@ async function getCacheRestoreKeyPrefix(config, codeQlVersion) {
|
||||
const componentsHash = createCacheKeyHash(cacheKeyComponents);
|
||||
return `${CACHE_PREFIX}-${CACHE_VERSION}-${componentsHash}-${languages}-${codeQlVersion}-`;
|
||||
}
|
||||
function createCacheKeyHash(components) {
|
||||
const componentsJson = JSON.stringify(components);
|
||||
return crypto.createHash("sha256").update(componentsJson).digest("hex").substring(0, 16);
|
||||
}
|
||||
|
||||
// src/tools-features.ts
|
||||
var semver3 = __toESM(require_semver2());
|
||||
@@ -88657,6 +88658,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
@@ -91053,66 +91059,107 @@ var CODEQL_DEPENDENCY_CACHE_VERSION = 1;
|
||||
function getJavaTempDependencyDir() {
|
||||
return (0, import_path.join)(getTemporaryDirectory(), "codeql_java", "repository");
|
||||
}
|
||||
function getDefaultCacheConfig() {
|
||||
return {
|
||||
java: {
|
||||
paths: [
|
||||
// Maven
|
||||
(0, import_path.join)(os3.homedir(), ".m2", "repository"),
|
||||
// Gradle
|
||||
(0, import_path.join)(os3.homedir(), ".gradle", "caches"),
|
||||
// CodeQL Java build-mode: none
|
||||
getJavaTempDependencyDir()
|
||||
],
|
||||
hash: [
|
||||
// Maven
|
||||
"**/pom.xml",
|
||||
// Gradle
|
||||
"**/*.gradle*",
|
||||
"**/gradle-wrapper.properties",
|
||||
"buildSrc/**/Versions.kt",
|
||||
"buildSrc/**/Dependencies.kt",
|
||||
"gradle/*.versions.toml",
|
||||
"**/versions.properties"
|
||||
]
|
||||
},
|
||||
csharp: {
|
||||
paths: [(0, import_path.join)(os3.homedir(), ".nuget", "packages")],
|
||||
hash: [
|
||||
// NuGet
|
||||
"**/packages.lock.json",
|
||||
// Paket
|
||||
"**/paket.lock"
|
||||
]
|
||||
},
|
||||
go: {
|
||||
paths: [(0, import_path.join)(os3.homedir(), "go", "pkg", "mod")],
|
||||
hash: ["**/go.sum"]
|
||||
}
|
||||
};
|
||||
function getJavaDependencyDirs() {
|
||||
return [
|
||||
// Maven
|
||||
(0, import_path.join)(os3.homedir(), ".m2", "repository"),
|
||||
// Gradle
|
||||
(0, import_path.join)(os3.homedir(), ".gradle", "caches"),
|
||||
// CodeQL Java build-mode: none
|
||||
getJavaTempDependencyDir()
|
||||
];
|
||||
}
|
||||
async function makePatternCheck(patterns) {
|
||||
const globber = await makeGlobber(patterns);
|
||||
if ((await globber.glob()).length === 0) {
|
||||
return void 0;
|
||||
}
|
||||
return patterns;
|
||||
}
|
||||
var CSHARP_BASE_PATTERNS = [
|
||||
// NuGet
|
||||
"**/packages.lock.json",
|
||||
// Paket
|
||||
"**/paket.lock"
|
||||
];
|
||||
var CSHARP_EXTRA_PATTERNS = [
|
||||
"**/*.csproj",
|
||||
"**/packages.config",
|
||||
"**/nuget.config"
|
||||
];
|
||||
async function getCsharpHashPatterns(codeql, features) {
|
||||
const basePatterns = await internal.makePatternCheck(CSHARP_BASE_PATTERNS);
|
||||
if (basePatterns !== void 0) {
|
||||
return basePatterns;
|
||||
}
|
||||
if (await features.getValue("csharp_new_cache_key" /* CsharpNewCacheKey */, codeql)) {
|
||||
return internal.makePatternCheck(CSHARP_EXTRA_PATTERNS);
|
||||
}
|
||||
return void 0;
|
||||
}
|
||||
var defaultCacheConfigs = {
|
||||
java: {
|
||||
getDependencyPaths: getJavaDependencyDirs,
|
||||
getHashPatterns: async () => internal.makePatternCheck([
|
||||
// Maven
|
||||
"**/pom.xml",
|
||||
// Gradle
|
||||
"**/*.gradle*",
|
||||
"**/gradle-wrapper.properties",
|
||||
"buildSrc/**/Versions.kt",
|
||||
"buildSrc/**/Dependencies.kt",
|
||||
"gradle/*.versions.toml",
|
||||
"**/versions.properties"
|
||||
])
|
||||
},
|
||||
csharp: {
|
||||
getDependencyPaths: () => [(0, import_path.join)(os3.homedir(), ".nuget", "packages")],
|
||||
getHashPatterns: getCsharpHashPatterns
|
||||
},
|
||||
go: {
|
||||
getDependencyPaths: () => [(0, import_path.join)(os3.homedir(), "go", "pkg", "mod")],
|
||||
getHashPatterns: async () => internal.makePatternCheck(["**/go.sum"])
|
||||
}
|
||||
};
|
||||
async function makeGlobber(patterns) {
|
||||
return glob.create(patterns.join("\n"));
|
||||
}
|
||||
async function uploadDependencyCaches(config, logger, minimizeJavaJars) {
|
||||
async function checkHashPatterns(codeql, features, language, cacheConfig, checkType, logger) {
|
||||
const patterns = await cacheConfig.getHashPatterns(codeql, features);
|
||||
if (patterns === void 0) {
|
||||
logger.info(
|
||||
`Skipping ${checkType} of dependency cache for ${language} as we cannot calculate a hash for the cache key.`
|
||||
);
|
||||
}
|
||||
return patterns;
|
||||
}
|
||||
async function uploadDependencyCaches(codeql, features, config, logger) {
|
||||
const status = [];
|
||||
for (const language of config.languages) {
|
||||
const cacheConfig = getDefaultCacheConfig()[language];
|
||||
const cacheConfig = defaultCacheConfigs[language];
|
||||
if (cacheConfig === void 0) {
|
||||
logger.info(
|
||||
`Skipping upload of dependency cache for ${language} as we have no caching configuration for it.`
|
||||
);
|
||||
continue;
|
||||
}
|
||||
const globber = await makeGlobber(cacheConfig.hash);
|
||||
if ((await globber.glob()).length === 0) {
|
||||
const patterns = await checkHashPatterns(
|
||||
codeql,
|
||||
features,
|
||||
language,
|
||||
cacheConfig,
|
||||
"upload",
|
||||
logger
|
||||
);
|
||||
if (patterns === void 0) {
|
||||
status.push({ language, result: "no-hash" /* NoHash */ });
|
||||
logger.info(
|
||||
`Skipping upload of dependency cache for ${language} as we cannot calculate a hash for the cache key.`
|
||||
);
|
||||
continue;
|
||||
}
|
||||
const size = await getTotalCacheSize(cacheConfig.paths, logger, true);
|
||||
const size = await getTotalCacheSize(
|
||||
cacheConfig.getDependencyPaths(),
|
||||
logger,
|
||||
true
|
||||
);
|
||||
if (size === 0) {
|
||||
status.push({ language, result: "empty" /* Empty */ });
|
||||
logger.info(
|
||||
@@ -91120,13 +91167,13 @@ async function uploadDependencyCaches(config, logger, minimizeJavaJars) {
|
||||
);
|
||||
continue;
|
||||
}
|
||||
const key = await cacheKey2(language, cacheConfig, minimizeJavaJars);
|
||||
const key = await cacheKey2(codeql, features, language, patterns);
|
||||
logger.info(
|
||||
`Uploading cache of size ${size} for ${language} with key ${key}...`
|
||||
);
|
||||
try {
|
||||
const start = performance.now();
|
||||
await actionsCache3.saveCache(cacheConfig.paths, key);
|
||||
await actionsCache3.saveCache(cacheConfig.getDependencyPaths(), key);
|
||||
const upload_duration_ms = Math.round(performance.now() - start);
|
||||
status.push({
|
||||
language,
|
||||
@@ -91148,22 +91195,50 @@ async function uploadDependencyCaches(config, logger, minimizeJavaJars) {
|
||||
}
|
||||
return status;
|
||||
}
|
||||
async function cacheKey2(language, cacheConfig, minimizeJavaJars = false) {
|
||||
const hash2 = await glob.hashFiles(cacheConfig.hash.join("\n"));
|
||||
return `${await cachePrefix2(language, minimizeJavaJars)}${hash2}`;
|
||||
async function cacheKey2(codeql, features, language, patterns) {
|
||||
const hash2 = await glob.hashFiles(patterns.join("\n"));
|
||||
return `${await cachePrefix2(codeql, features, language)}${hash2}`;
|
||||
}
|
||||
async function cachePrefix2(language, minimizeJavaJars) {
|
||||
async function getFeaturePrefix(codeql, features, language) {
|
||||
const enabledFeatures = [];
|
||||
const addFeatureIfEnabled = async (feature) => {
|
||||
if (await features.getValue(feature, codeql)) {
|
||||
enabledFeatures.push(feature);
|
||||
}
|
||||
};
|
||||
if (language === "java" /* java */) {
|
||||
const minimizeJavaJars = await features.getValue(
|
||||
"java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */,
|
||||
codeql
|
||||
);
|
||||
if (minimizeJavaJars) {
|
||||
return "minify-";
|
||||
}
|
||||
} else if (language === "csharp" /* csharp */) {
|
||||
await addFeatureIfEnabled("csharp_new_cache_key" /* CsharpNewCacheKey */);
|
||||
}
|
||||
if (enabledFeatures.length > 0) {
|
||||
return `${createCacheKeyHash(enabledFeatures)}-`;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
async function cachePrefix2(codeql, features, language) {
|
||||
const runnerOs = getRequiredEnvParam("RUNNER_OS");
|
||||
const customPrefix = process.env["CODEQL_ACTION_DEPENDENCY_CACHE_PREFIX" /* DEPENDENCY_CACHING_PREFIX */];
|
||||
let prefix = CODEQL_DEPENDENCY_CACHE_PREFIX;
|
||||
if (customPrefix !== void 0 && customPrefix.length > 0) {
|
||||
prefix = `${prefix}-${customPrefix}`;
|
||||
}
|
||||
if (language === "java" /* java */ && minimizeJavaJars) {
|
||||
prefix = `minify-${prefix}`;
|
||||
const featurePrefix = await getFeaturePrefix(codeql, features, language);
|
||||
if (featurePrefix === "minify-") {
|
||||
return `${featurePrefix}${prefix}-${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`;
|
||||
} else {
|
||||
return `${prefix}-${featurePrefix}${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`;
|
||||
}
|
||||
return `${prefix}-${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`;
|
||||
}
|
||||
var internal = {
|
||||
makePatternCheck
|
||||
};
|
||||
|
||||
// src/diagnostics.ts
|
||||
var import_fs = require("fs");
|
||||
@@ -93976,14 +94051,11 @@ async function run() {
|
||||
logger
|
||||
);
|
||||
if (shouldStoreCache(config.dependencyCachingEnabled)) {
|
||||
const minimizeJavaJars = await features.getValue(
|
||||
"java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */,
|
||||
codeql
|
||||
);
|
||||
dependencyCacheResults = await uploadDependencyCaches(
|
||||
codeql,
|
||||
features,
|
||||
config,
|
||||
logger,
|
||||
minimizeJavaJars
|
||||
logger
|
||||
);
|
||||
}
|
||||
if (isInTestMode()) {
|
||||
|
||||
5
lib/autobuild-action.js
generated
5
lib/autobuild-action.js
generated
@@ -83977,6 +83977,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
|
||||
5
lib/init-action-post.js
generated
5
lib/init-action-post.js
generated
@@ -123309,6 +123309,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
|
||||
204
lib/init-action.js
generated
204
lib/init-action.js
generated
@@ -85234,6 +85234,7 @@ function wrapApiConfigurationError(e) {
|
||||
}
|
||||
|
||||
// src/caching-utils.ts
|
||||
var crypto = __toESM(require("crypto"));
|
||||
var core6 = __toESM(require_core());
|
||||
async function getTotalCacheSize(paths, logger, quiet = false) {
|
||||
const sizes = await Promise.all(
|
||||
@@ -85266,6 +85267,11 @@ function getCachingKind(input) {
|
||||
return "none" /* None */;
|
||||
}
|
||||
}
|
||||
var cacheKeyHashLength = 16;
|
||||
function createCacheKeyHash(components) {
|
||||
const componentsJson = JSON.stringify(components);
|
||||
return crypto.createHash("sha256").update(componentsJson).digest("hex").substring(0, cacheKeyHashLength);
|
||||
}
|
||||
function getDependencyCachingEnabled() {
|
||||
const dependencyCaching = getOptionalInput("dependency-caching") || process.env["CODEQL_ACTION_DEPENDENCY_CACHING" /* DEPENDENCY_CACHING */];
|
||||
if (dependencyCaching !== void 0) return getCachingKind(dependencyCaching);
|
||||
@@ -85632,7 +85638,6 @@ var bundleVersion = "codeql-bundle-v2.23.3";
|
||||
var cliVersion = "2.23.3";
|
||||
|
||||
// src/overlay-database-utils.ts
|
||||
var crypto = __toESM(require("crypto"));
|
||||
var fs3 = __toESM(require("fs"));
|
||||
var path4 = __toESM(require("path"));
|
||||
var actionsCache = __toESM(require_cache3());
|
||||
@@ -86034,10 +86039,6 @@ async function getCacheRestoreKeyPrefix(config, codeQlVersion) {
|
||||
const componentsHash = createCacheKeyHash(cacheKeyComponents);
|
||||
return `${CACHE_PREFIX}-${CACHE_VERSION}-${componentsHash}-${languages}-${codeQlVersion}-`;
|
||||
}
|
||||
function createCacheKeyHash(components) {
|
||||
const componentsJson = JSON.stringify(components);
|
||||
return crypto.createHash("sha256").update(componentsJson).digest("hex").substring(0, 16);
|
||||
}
|
||||
|
||||
// src/tools-features.ts
|
||||
var semver3 = __toESM(require_semver2());
|
||||
@@ -86071,6 +86072,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
@@ -87240,68 +87246,105 @@ var CODEQL_DEPENDENCY_CACHE_VERSION = 1;
|
||||
function getJavaTempDependencyDir() {
|
||||
return (0, import_path.join)(getTemporaryDirectory(), "codeql_java", "repository");
|
||||
}
|
||||
function getDefaultCacheConfig() {
|
||||
return {
|
||||
java: {
|
||||
paths: [
|
||||
// Maven
|
||||
(0, import_path.join)(os2.homedir(), ".m2", "repository"),
|
||||
// Gradle
|
||||
(0, import_path.join)(os2.homedir(), ".gradle", "caches"),
|
||||
// CodeQL Java build-mode: none
|
||||
getJavaTempDependencyDir()
|
||||
],
|
||||
hash: [
|
||||
// Maven
|
||||
"**/pom.xml",
|
||||
// Gradle
|
||||
"**/*.gradle*",
|
||||
"**/gradle-wrapper.properties",
|
||||
"buildSrc/**/Versions.kt",
|
||||
"buildSrc/**/Dependencies.kt",
|
||||
"gradle/*.versions.toml",
|
||||
"**/versions.properties"
|
||||
]
|
||||
},
|
||||
csharp: {
|
||||
paths: [(0, import_path.join)(os2.homedir(), ".nuget", "packages")],
|
||||
hash: [
|
||||
// NuGet
|
||||
"**/packages.lock.json",
|
||||
// Paket
|
||||
"**/paket.lock"
|
||||
]
|
||||
},
|
||||
go: {
|
||||
paths: [(0, import_path.join)(os2.homedir(), "go", "pkg", "mod")],
|
||||
hash: ["**/go.sum"]
|
||||
}
|
||||
};
|
||||
function getJavaDependencyDirs() {
|
||||
return [
|
||||
// Maven
|
||||
(0, import_path.join)(os2.homedir(), ".m2", "repository"),
|
||||
// Gradle
|
||||
(0, import_path.join)(os2.homedir(), ".gradle", "caches"),
|
||||
// CodeQL Java build-mode: none
|
||||
getJavaTempDependencyDir()
|
||||
];
|
||||
}
|
||||
async function makePatternCheck(patterns) {
|
||||
const globber = await makeGlobber(patterns);
|
||||
if ((await globber.glob()).length === 0) {
|
||||
return void 0;
|
||||
}
|
||||
return patterns;
|
||||
}
|
||||
var CSHARP_BASE_PATTERNS = [
|
||||
// NuGet
|
||||
"**/packages.lock.json",
|
||||
// Paket
|
||||
"**/paket.lock"
|
||||
];
|
||||
var CSHARP_EXTRA_PATTERNS = [
|
||||
"**/*.csproj",
|
||||
"**/packages.config",
|
||||
"**/nuget.config"
|
||||
];
|
||||
async function getCsharpHashPatterns(codeql, features) {
|
||||
const basePatterns = await internal.makePatternCheck(CSHARP_BASE_PATTERNS);
|
||||
if (basePatterns !== void 0) {
|
||||
return basePatterns;
|
||||
}
|
||||
if (await features.getValue("csharp_new_cache_key" /* CsharpNewCacheKey */, codeql)) {
|
||||
return internal.makePatternCheck(CSHARP_EXTRA_PATTERNS);
|
||||
}
|
||||
return void 0;
|
||||
}
|
||||
var defaultCacheConfigs = {
|
||||
java: {
|
||||
getDependencyPaths: getJavaDependencyDirs,
|
||||
getHashPatterns: async () => internal.makePatternCheck([
|
||||
// Maven
|
||||
"**/pom.xml",
|
||||
// Gradle
|
||||
"**/*.gradle*",
|
||||
"**/gradle-wrapper.properties",
|
||||
"buildSrc/**/Versions.kt",
|
||||
"buildSrc/**/Dependencies.kt",
|
||||
"gradle/*.versions.toml",
|
||||
"**/versions.properties"
|
||||
])
|
||||
},
|
||||
csharp: {
|
||||
getDependencyPaths: () => [(0, import_path.join)(os2.homedir(), ".nuget", "packages")],
|
||||
getHashPatterns: getCsharpHashPatterns
|
||||
},
|
||||
go: {
|
||||
getDependencyPaths: () => [(0, import_path.join)(os2.homedir(), "go", "pkg", "mod")],
|
||||
getHashPatterns: async () => internal.makePatternCheck(["**/go.sum"])
|
||||
}
|
||||
};
|
||||
async function makeGlobber(patterns) {
|
||||
return glob.create(patterns.join("\n"));
|
||||
}
|
||||
async function downloadDependencyCaches(languages, logger, minimizeJavaJars) {
|
||||
async function checkHashPatterns(codeql, features, language, cacheConfig, checkType, logger) {
|
||||
const patterns = await cacheConfig.getHashPatterns(codeql, features);
|
||||
if (patterns === void 0) {
|
||||
logger.info(
|
||||
`Skipping ${checkType} of dependency cache for ${language} as we cannot calculate a hash for the cache key.`
|
||||
);
|
||||
}
|
||||
return patterns;
|
||||
}
|
||||
async function downloadDependencyCaches(codeql, features, languages, logger) {
|
||||
const status = [];
|
||||
for (const language of languages) {
|
||||
const cacheConfig = getDefaultCacheConfig()[language];
|
||||
const cacheConfig = defaultCacheConfigs[language];
|
||||
if (cacheConfig === void 0) {
|
||||
logger.info(
|
||||
`Skipping download of dependency cache for ${language} as we have no caching configuration for it.`
|
||||
);
|
||||
continue;
|
||||
}
|
||||
const globber = await makeGlobber(cacheConfig.hash);
|
||||
if ((await globber.glob()).length === 0) {
|
||||
const patterns = await checkHashPatterns(
|
||||
codeql,
|
||||
features,
|
||||
language,
|
||||
cacheConfig,
|
||||
"download",
|
||||
logger
|
||||
);
|
||||
if (patterns === void 0) {
|
||||
status.push({ language, hit_kind: "no-hash" /* NoHash */ });
|
||||
logger.info(
|
||||
`Skipping download of dependency cache for ${language} as we cannot calculate a hash for the cache key.`
|
||||
);
|
||||
continue;
|
||||
}
|
||||
const primaryKey = await cacheKey2(language, cacheConfig, minimizeJavaJars);
|
||||
const primaryKey = await cacheKey2(codeql, features, language, patterns);
|
||||
const restoreKeys = [
|
||||
await cachePrefix2(language, minimizeJavaJars)
|
||||
await cachePrefix2(codeql, features, language)
|
||||
];
|
||||
logger.info(
|
||||
`Downloading cache for ${language} with key ${primaryKey} and restore keys ${restoreKeys.join(
|
||||
@@ -87310,7 +87353,7 @@ async function downloadDependencyCaches(languages, logger, minimizeJavaJars) {
|
||||
);
|
||||
const start = performance.now();
|
||||
const hitKey = await actionsCache3.restoreCache(
|
||||
cacheConfig.paths,
|
||||
cacheConfig.getDependencyPaths(),
|
||||
primaryKey,
|
||||
restoreKeys
|
||||
);
|
||||
@@ -87326,22 +87369,50 @@ async function downloadDependencyCaches(languages, logger, minimizeJavaJars) {
|
||||
}
|
||||
return status;
|
||||
}
|
||||
async function cacheKey2(language, cacheConfig, minimizeJavaJars = false) {
|
||||
const hash = await glob.hashFiles(cacheConfig.hash.join("\n"));
|
||||
return `${await cachePrefix2(language, minimizeJavaJars)}${hash}`;
|
||||
async function cacheKey2(codeql, features, language, patterns) {
|
||||
const hash = await glob.hashFiles(patterns.join("\n"));
|
||||
return `${await cachePrefix2(codeql, features, language)}${hash}`;
|
||||
}
|
||||
async function cachePrefix2(language, minimizeJavaJars) {
|
||||
async function getFeaturePrefix(codeql, features, language) {
|
||||
const enabledFeatures = [];
|
||||
const addFeatureIfEnabled = async (feature) => {
|
||||
if (await features.getValue(feature, codeql)) {
|
||||
enabledFeatures.push(feature);
|
||||
}
|
||||
};
|
||||
if (language === "java" /* java */) {
|
||||
const minimizeJavaJars = await features.getValue(
|
||||
"java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */,
|
||||
codeql
|
||||
);
|
||||
if (minimizeJavaJars) {
|
||||
return "minify-";
|
||||
}
|
||||
} else if (language === "csharp" /* csharp */) {
|
||||
await addFeatureIfEnabled("csharp_new_cache_key" /* CsharpNewCacheKey */);
|
||||
}
|
||||
if (enabledFeatures.length > 0) {
|
||||
return `${createCacheKeyHash(enabledFeatures)}-`;
|
||||
}
|
||||
return "";
|
||||
}
|
||||
async function cachePrefix2(codeql, features, language) {
|
||||
const runnerOs = getRequiredEnvParam("RUNNER_OS");
|
||||
const customPrefix = process.env["CODEQL_ACTION_DEPENDENCY_CACHE_PREFIX" /* DEPENDENCY_CACHING_PREFIX */];
|
||||
let prefix = CODEQL_DEPENDENCY_CACHE_PREFIX;
|
||||
if (customPrefix !== void 0 && customPrefix.length > 0) {
|
||||
prefix = `${prefix}-${customPrefix}`;
|
||||
}
|
||||
if (language === "java" /* java */ && minimizeJavaJars) {
|
||||
prefix = `minify-${prefix}`;
|
||||
const featurePrefix = await getFeaturePrefix(codeql, features, language);
|
||||
if (featurePrefix === "minify-") {
|
||||
return `${featurePrefix}${prefix}-${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`;
|
||||
} else {
|
||||
return `${prefix}-${featurePrefix}${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`;
|
||||
}
|
||||
return `${prefix}-${CODEQL_DEPENDENCY_CACHE_VERSION}-${runnerOs}-${language}-`;
|
||||
}
|
||||
var internal = {
|
||||
makePatternCheck
|
||||
};
|
||||
|
||||
// src/diagnostics.ts
|
||||
var import_fs = require("fs");
|
||||
@@ -89705,7 +89776,7 @@ async function getWorkflowAbsolutePath(logger) {
|
||||
async function checkWorkflow(logger, codeql) {
|
||||
if (!isDynamicWorkflow() && process.env["CODEQL_ACTION_SKIP_WORKFLOW_VALIDATION" /* SKIP_WORKFLOW_VALIDATION */] !== "true") {
|
||||
core12.startGroup("Validating workflow");
|
||||
const validateWorkflowResult = await internal.validateWorkflow(
|
||||
const validateWorkflowResult = await internal2.validateWorkflow(
|
||||
codeql,
|
||||
logger
|
||||
);
|
||||
@@ -89719,7 +89790,7 @@ async function checkWorkflow(logger, codeql) {
|
||||
core12.endGroup();
|
||||
}
|
||||
}
|
||||
var internal = {
|
||||
var internal2 = {
|
||||
validateWorkflow
|
||||
};
|
||||
|
||||
@@ -90068,15 +90139,12 @@ exec ${goBinaryPath} "$@"`
|
||||
core13.exportVariable(envVar, "false");
|
||||
}
|
||||
}
|
||||
const minimizeJavaJars = await features.getValue(
|
||||
"java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */,
|
||||
codeql
|
||||
);
|
||||
if (shouldRestoreCache(config.dependencyCachingEnabled)) {
|
||||
dependencyCachingResults = await downloadDependencyCaches(
|
||||
codeql,
|
||||
features,
|
||||
config.languages,
|
||||
logger,
|
||||
minimizeJavaJars
|
||||
logger
|
||||
);
|
||||
}
|
||||
if (await codeQlVersionAtLeast(codeql, "2.17.1")) {
|
||||
@@ -90114,7 +90182,7 @@ exec ${goBinaryPath} "$@"`
|
||||
logger.debug(
|
||||
`${"CODEQL_EXTRACTOR_JAVA_OPTION_MINIMIZE_DEPENDENCY_JARS" /* JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS */} is already set to '${process.env["CODEQL_EXTRACTOR_JAVA_OPTION_MINIMIZE_DEPENDENCY_JARS" /* JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS */]}', so the Action will not override it.`
|
||||
);
|
||||
} else if (minimizeJavaJars && config.dependencyCachingEnabled && config.buildMode === "none" /* None */ && config.languages.includes("java" /* java */)) {
|
||||
} else if (await features.getValue("java_minimize_dependency_jars" /* JavaMinimizeDependencyJars */, codeql) && config.dependencyCachingEnabled && config.buildMode === "none" /* None */ && config.languages.includes("java" /* java */)) {
|
||||
core13.exportVariable(
|
||||
"CODEQL_EXTRACTOR_JAVA_OPTION_MINIMIZE_DEPENDENCY_JARS" /* JAVA_EXTRACTOR_MINIMIZE_DEPENDENCY_JARS */,
|
||||
"true"
|
||||
|
||||
5
lib/resolve-environment-action.js
generated
5
lib/resolve-environment-action.js
generated
@@ -83968,6 +83968,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
|
||||
35
lib/setup-codeql-action.js
generated
35
lib/setup-codeql-action.js
generated
@@ -83596,14 +83596,17 @@ var fs3 = __toESM(require("fs"));
|
||||
var path3 = __toESM(require("path"));
|
||||
var actionsCache = __toESM(require_cache3());
|
||||
|
||||
// src/git-utils.ts
|
||||
// src/caching-utils.ts
|
||||
var core6 = __toESM(require_core());
|
||||
|
||||
// src/git-utils.ts
|
||||
var core7 = __toESM(require_core());
|
||||
var toolrunner2 = __toESM(require_toolrunner());
|
||||
var io3 = __toESM(require_io2());
|
||||
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
|
||||
let stdout = "";
|
||||
let stderr = "";
|
||||
core6.debug(`Running git command: git ${args.join(" ")}`);
|
||||
core7.debug(`Running git command: git ${args.join(" ")}`);
|
||||
try {
|
||||
await new toolrunner2.ToolRunner(await io3.which("git", true), args, {
|
||||
silent: true,
|
||||
@@ -83623,7 +83626,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
|
||||
if (stderr.includes("not a git repository")) {
|
||||
reason = "The checkout path provided to the action does not appear to be a git repository.";
|
||||
}
|
||||
core6.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
|
||||
core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
|
||||
throw error4;
|
||||
}
|
||||
};
|
||||
@@ -83734,7 +83737,7 @@ async function getRef() {
|
||||
) !== head;
|
||||
if (hasChangedRef) {
|
||||
const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head");
|
||||
core6.debug(
|
||||
core7.debug(
|
||||
`No longer on merge commit, rewriting ref from ${ref} to ${newRef}.`
|
||||
);
|
||||
return newRef;
|
||||
@@ -83760,16 +83763,16 @@ async function isAnalyzingDefaultBranch() {
|
||||
}
|
||||
|
||||
// src/logging.ts
|
||||
var core7 = __toESM(require_core());
|
||||
var core8 = __toESM(require_core());
|
||||
function getActionsLogger() {
|
||||
return {
|
||||
debug: core7.debug,
|
||||
info: core7.info,
|
||||
warning: core7.warning,
|
||||
error: core7.error,
|
||||
isDebug: core7.isDebug,
|
||||
startGroup: core7.startGroup,
|
||||
endGroup: core7.endGroup
|
||||
debug: core8.debug,
|
||||
info: core8.info,
|
||||
warning: core8.warning,
|
||||
error: core8.error,
|
||||
isDebug: core8.isDebug,
|
||||
startGroup: core8.startGroup,
|
||||
endGroup: core8.endGroup
|
||||
};
|
||||
}
|
||||
function formatDuration(durationMs) {
|
||||
@@ -83877,6 +83880,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
@@ -84562,9 +84570,6 @@ var AnalysisKind = /* @__PURE__ */ ((AnalysisKind2) => {
|
||||
})(AnalysisKind || {});
|
||||
var supportedAnalysisKinds = new Set(Object.values(AnalysisKind));
|
||||
|
||||
// src/caching-utils.ts
|
||||
var core8 = __toESM(require_core());
|
||||
|
||||
// src/config/db-config.ts
|
||||
var jsonschema = __toESM(require_lib4());
|
||||
var semver4 = __toESM(require_semver2());
|
||||
|
||||
5
lib/start-proxy-action-post.js
generated
5
lib/start-proxy-action-post.js
generated
@@ -119334,6 +119334,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
|
||||
5
lib/start-proxy-action.js
generated
5
lib/start-proxy-action.js
generated
@@ -99996,6 +99996,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
|
||||
5
lib/upload-lib.js
generated
5
lib/upload-lib.js
generated
@@ -87034,6 +87034,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
|
||||
5
lib/upload-sarif-action-post.js
generated
5
lib/upload-sarif-action-post.js
generated
@@ -119500,6 +119500,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
|
||||
35
lib/upload-sarif-action.js
generated
35
lib/upload-sarif-action.js
generated
@@ -86512,14 +86512,17 @@ var fs3 = __toESM(require("fs"));
|
||||
var path3 = __toESM(require("path"));
|
||||
var actionsCache = __toESM(require_cache3());
|
||||
|
||||
// src/git-utils.ts
|
||||
// src/caching-utils.ts
|
||||
var core6 = __toESM(require_core());
|
||||
|
||||
// src/git-utils.ts
|
||||
var core7 = __toESM(require_core());
|
||||
var toolrunner2 = __toESM(require_toolrunner());
|
||||
var io3 = __toESM(require_io2());
|
||||
var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
|
||||
let stdout = "";
|
||||
let stderr = "";
|
||||
core6.debug(`Running git command: git ${args.join(" ")}`);
|
||||
core7.debug(`Running git command: git ${args.join(" ")}`);
|
||||
try {
|
||||
await new toolrunner2.ToolRunner(await io3.which("git", true), args, {
|
||||
silent: true,
|
||||
@@ -86539,7 +86542,7 @@ var runGitCommand = async function(workingDirectory, args, customErrorMessage) {
|
||||
if (stderr.includes("not a git repository")) {
|
||||
reason = "The checkout path provided to the action does not appear to be a git repository.";
|
||||
}
|
||||
core6.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
|
||||
core7.info(`git call failed. ${customErrorMessage} Error: ${reason}`);
|
||||
throw error4;
|
||||
}
|
||||
};
|
||||
@@ -86684,7 +86687,7 @@ async function getRef() {
|
||||
) !== head;
|
||||
if (hasChangedRef) {
|
||||
const newRef = ref.replace(pull_ref_regex, "refs/pull/$1/head");
|
||||
core6.debug(
|
||||
core7.debug(
|
||||
`No longer on merge commit, rewriting ref from ${ref} to ${newRef}.`
|
||||
);
|
||||
return newRef;
|
||||
@@ -86710,16 +86713,16 @@ async function isAnalyzingDefaultBranch() {
|
||||
}
|
||||
|
||||
// src/logging.ts
|
||||
var core7 = __toESM(require_core());
|
||||
var core8 = __toESM(require_core());
|
||||
function getActionsLogger() {
|
||||
return {
|
||||
debug: core7.debug,
|
||||
info: core7.info,
|
||||
warning: core7.warning,
|
||||
error: core7.error,
|
||||
isDebug: core7.isDebug,
|
||||
startGroup: core7.startGroup,
|
||||
endGroup: core7.endGroup
|
||||
debug: core8.debug,
|
||||
info: core8.info,
|
||||
warning: core8.warning,
|
||||
error: core8.error,
|
||||
isDebug: core8.isDebug,
|
||||
startGroup: core8.startGroup,
|
||||
endGroup: core8.endGroup
|
||||
};
|
||||
}
|
||||
function formatDuration(durationMs) {
|
||||
@@ -86827,6 +86830,11 @@ var featureConfig = {
|
||||
legacyApi: true,
|
||||
minimumVersion: "2.15.0"
|
||||
},
|
||||
["csharp_new_cache_key" /* CsharpNewCacheKey */]: {
|
||||
defaultValue: false,
|
||||
envVar: "CODEQL_ACTION_CSHARP_NEW_CACHE_KEY",
|
||||
minimumVersion: void 0
|
||||
},
|
||||
["diff_informed_queries" /* DiffInformedQueries */]: {
|
||||
defaultValue: true,
|
||||
envVar: "CODEQL_ACTION_DIFF_INFORMED_QUERIES",
|
||||
@@ -87262,9 +87270,6 @@ var core9 = __toESM(require_core());
|
||||
var fs6 = __toESM(require("fs"));
|
||||
var path6 = __toESM(require("path"));
|
||||
|
||||
// src/caching-utils.ts
|
||||
var core8 = __toESM(require_core());
|
||||
|
||||
// src/config/db-config.ts
|
||||
var jsonschema = __toESM(require_lib4());
|
||||
var semver4 = __toESM(require_semver2());
|
||||
|
||||
Reference in New Issue
Block a user