mirror of
https://github.com/github/codeql-action.git
synced 2026-05-07 14:20:19 +00:00
Add detected tar version to telemetry
This commit is contained in:
+10
-8
@@ -720,11 +720,14 @@ export async function setupCodeQLBundle(
|
||||
features: FeatureEnablement,
|
||||
logger: Logger,
|
||||
): Promise<SetupCodeQLResult> {
|
||||
let tarVersion: tar.TarVersion | undefined = undefined;
|
||||
let zstdError: unknown = undefined;
|
||||
|
||||
if (!toolsInput && (await features.getValue(Feature.ZstdBundle))) {
|
||||
try {
|
||||
if (await tar.isZstdAvailable(logger)) {
|
||||
const availableResult = await tar.isZstdAvailable(logger);
|
||||
tarVersion = availableResult.version;
|
||||
if (availableResult.available) {
|
||||
return await setupCodeQLBundleWithZstdOption(
|
||||
toolsInput,
|
||||
apiDetails,
|
||||
@@ -759,13 +762,12 @@ export async function setupCodeQLBundle(
|
||||
logger,
|
||||
);
|
||||
|
||||
if (zstdError) {
|
||||
result.toolsDownloadStatusReport = Object.assign(
|
||||
{},
|
||||
result.toolsDownloadStatusReport,
|
||||
{ zstdError: wrapError(zstdError).message },
|
||||
);
|
||||
}
|
||||
result.toolsDownloadStatusReport = Object.assign(
|
||||
{},
|
||||
result.toolsDownloadStatusReport,
|
||||
tarVersion ? { tarVersion } : {},
|
||||
zstdError ? { zstdError: wrapError(zstdError).message } : {},
|
||||
);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
+15
-6
@@ -8,7 +8,7 @@ import { assertNever } from "./util";
|
||||
const MIN_REQUIRED_BSD_TAR_VERSION = "3.4.3";
|
||||
const MIN_REQUIRED_GNU_TAR_VERSION = "1.31";
|
||||
|
||||
type TarVersion = {
|
||||
export type TarVersion = {
|
||||
type: "gnu" | "bsd";
|
||||
version: string;
|
||||
};
|
||||
@@ -46,15 +46,24 @@ async function getTarVersion(): Promise<TarVersion> {
|
||||
}
|
||||
}
|
||||
|
||||
export async function isZstdAvailable(logger: Logger): Promise<boolean> {
|
||||
export async function isZstdAvailable(
|
||||
logger: Logger,
|
||||
): Promise<{ available: boolean; version?: TarVersion }> {
|
||||
try {
|
||||
const { type, version } = await getTarVersion();
|
||||
const tarVersion = await getTarVersion();
|
||||
const { type, version } = tarVersion;
|
||||
logger.info(`Found ${type} tar version ${version}.`);
|
||||
switch (type) {
|
||||
case "gnu":
|
||||
return version >= MIN_REQUIRED_GNU_TAR_VERSION;
|
||||
return {
|
||||
available: version >= MIN_REQUIRED_GNU_TAR_VERSION,
|
||||
version: tarVersion,
|
||||
};
|
||||
case "bsd":
|
||||
return version >= MIN_REQUIRED_BSD_TAR_VERSION;
|
||||
return {
|
||||
available: version >= MIN_REQUIRED_BSD_TAR_VERSION,
|
||||
version: tarVersion,
|
||||
};
|
||||
default:
|
||||
assertNever(type);
|
||||
}
|
||||
@@ -63,7 +72,7 @@ export async function isZstdAvailable(logger: Logger): Promise<boolean> {
|
||||
"Failed to determine tar version, therefore will assume zstd may not be available. " +
|
||||
`The underlying error was: ${e}`,
|
||||
);
|
||||
return false;
|
||||
return { available: false };
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user