Merge pull request #3658 from github/nickrolfe/summary-symbols
Allow compatible CLIs to generate summary symbols file
This commit is contained in:
@@ -12,6 +12,7 @@ interface VersionResult {
|
||||
export interface CliFeatures {
|
||||
featuresInVersionResult?: boolean;
|
||||
mrvaPackCreate?: boolean;
|
||||
generateSummarySymbolMap?: boolean;
|
||||
}
|
||||
|
||||
export interface VersionAndFeatures {
|
||||
|
||||
@@ -1211,10 +1211,15 @@ export class CodeQLCliServer implements Disposable {
|
||||
outputPath: string,
|
||||
endSummaryPath: string,
|
||||
): Promise<string> {
|
||||
const supportsGenerateSummarySymbolMap =
|
||||
await this.cliConstraints.supportsGenerateSummarySymbolMap();
|
||||
const subcommandArgs = [
|
||||
"--format=text",
|
||||
`--end-summary=${endSummaryPath}`,
|
||||
"--sourcemap",
|
||||
...(supportsGenerateSummarySymbolMap
|
||||
? ["--summary-symbol-map", "--minify-output"]
|
||||
: []),
|
||||
inputPath,
|
||||
outputPath,
|
||||
];
|
||||
@@ -1953,4 +1958,8 @@ export class CliVersionConstraint {
|
||||
async supportsMrvaPackCreate(): Promise<boolean> {
|
||||
return (await this.cli.getFeatures()).mrvaPackCreate === true;
|
||||
}
|
||||
|
||||
async supportsGenerateSummarySymbolMap(): Promise<boolean> {
|
||||
return (await this.cli.getFeatures()).generateSummarySymbolMap === true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -544,11 +544,18 @@ export async function generateEvalLogSummaries(
|
||||
await cliServer.generateJsonLogSummary(log, jsonSummary);
|
||||
|
||||
if (humanReadableSummary !== undefined) {
|
||||
progress(progressUpdate(3, 3, "Generating summary symbols file"));
|
||||
summarySymbols = outputDir.evalLogSummarySymbolsPath;
|
||||
if (
|
||||
!(await cliServer.cliConstraints.supportsGenerateSummarySymbolMap())
|
||||
) {
|
||||
// We're using an old CLI that cannot generate the summary symbols file while generating the
|
||||
// human-readable log summary. As a fallback, create it by parsing the human-readable
|
||||
// summary.
|
||||
progress(progressUpdate(3, 3, "Generating summary symbols file"));
|
||||
await generateSummarySymbolsFile(humanReadableSummary, summarySymbols);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
log,
|
||||
|
||||
Reference in New Issue
Block a user