From 3da852e107a8b010f01b468b4be62250eca45340 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Wed, 2 Oct 2024 15:32:34 +0100 Subject: [PATCH] Capture stderr from extracting `.tar.zst` --- lib/setup-codeql.js | 12 ++++--- lib/setup-codeql.js.map | 2 +- lib/tar.js | 66 ++++++++++++++++++++++++++++------ lib/tar.js.map | 2 +- src/setup-codeql.ts | 15 ++++++-- src/tar.ts | 78 +++++++++++++++++++++++++++++++++++------ 6 files changed, 147 insertions(+), 28 deletions(-) diff --git a/lib/setup-codeql.js b/lib/setup-codeql.js index 82c3af95d6..0ec9664d45 100644 --- a/lib/setup-codeql.js +++ b/lib/setup-codeql.js @@ -373,7 +373,7 @@ async function tryGetFallbackToolcacheVersion(cliVersion, tagName, logger) { } // Exported using `export const` for testing purposes. Specifically, we want to // be able to stub this function and have other functions in this file use that stub. -const downloadCodeQL = async function (codeqlURL, maybeBundleVersion, maybeCliVersion, apiDetails, tempDir, logger) { +const downloadCodeQL = async function (codeqlURL, maybeBundleVersion, maybeCliVersion, apiDetails, tarVersion, tempDir, logger) { const parsedCodeQLURL = new URL(codeqlURL); const searchParams = new URLSearchParams(parsedCodeQLURL.search); const headers = { @@ -405,7 +405,7 @@ const downloadCodeQL = async function (codeqlURL, maybeBundleVersion, maybeCliVe logger.debug(`Finished downloading CodeQL bundle to ${archivedBundlePath} (${downloadDurationMs} ms).`); logger.debug("Extracting CodeQL bundle."); const extractionStart = perf_hooks_1.performance.now(); - const extractedBundlePath = await tar.extract(archivedBundlePath, compressionMethod); + const extractedBundlePath = await tar.extract(archivedBundlePath, compressionMethod, tarVersion); const extractionDurationMs = Math.round(perf_hooks_1.performance.now() - extractionStart); logger.debug(`Finished extracting CodeQL bundle to ${extractedBundlePath} (${extractionDurationMs} ms).`); await cleanUpGlob(archivedBundlePath, "CodeQL bundle archive", logger); @@ -492,6 +492,10 @@ async function setupCodeQLBundle(toolsInput, apiDetails, tempDir, variant, defau } catch (e) { zstdFailureReason = util.getErrorMessage(e) || "unknown error"; + if (e instanceof actions_util_1.CommandInvocationError) { + zstdFailureReason += ` Full error: ${e.stderr}`; + logger.debug(`Invocation output the following to stderr: ${e.stderr}`); + } logger.warning(`Failed to set up CodeQL tools with zstd. Falling back to gzipped version. Error: ${util.getErrorMessage(e)}`); } } @@ -510,7 +514,7 @@ async function setupCodeQLBundleWithCompressionMethod(toolsInput, apiDetails, te switch (source.sourceType) { case "local": { const compressionMethod = tar.inferCompressionMethod(source.codeqlTarPath); - codeqlFolder = await tar.extract(source.codeqlTarPath, compressionMethod); + codeqlFolder = await tar.extract(source.codeqlTarPath, compressionMethod, zstdAvailability.version); toolsSource = ToolsSource.Local; break; } @@ -520,7 +524,7 @@ async function setupCodeQLBundleWithCompressionMethod(toolsInput, apiDetails, te toolsSource = ToolsSource.Toolcache; break; case "download": { - const result = await (0, exports.downloadCodeQL)(source.codeqlURL, source.bundleVersion, source.cliVersion, apiDetails, tempDir, logger); + const result = await (0, exports.downloadCodeQL)(source.codeqlURL, source.bundleVersion, source.cliVersion, apiDetails, zstdAvailability.version, tempDir, logger); toolsVersion = result.toolsVersion; codeqlFolder = result.codeqlFolder; toolsDownloadStatusReport = result.statusReport; diff --git a/lib/setup-codeql.js.map b/lib/setup-codeql.js.map index 6fea66511c..516ee1cbfd 100644 --- a/lib/setup-codeql.js.map +++ b/lib/setup-codeql.js.map @@ -1 +1 @@ -{"version":3,"file":"setup-codeql.js","sourceRoot":"","sources":["../src/setup-codeql.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"setup-codeql.js","sourceRoot":"","sources":["../src/setup-codeql.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/tar.js b/lib/tar.js index a5fdfa42f1..0a9b4478d4 100644 --- a/lib/tar.js +++ b/lib/tar.js @@ -22,13 +22,21 @@ var __importStar = (this && this.__importStar) || function (mod) { __setModuleDefault(result, mod); return result; }; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; Object.defineProperty(exports, "__esModule", { value: true }); exports.isZstdAvailable = isZstdAvailable; exports.extract = extract; +exports.extractTarZst = extractTarZst; exports.inferCompressionMethod = inferCompressionMethod; +const fs = __importStar(require("fs")); +const path_1 = __importDefault(require("path")); const toolrunner_1 = require("@actions/exec/lib/toolrunner"); const toolcache = __importStar(require("@actions/tool-cache")); const safe_which_1 = require("@chrisgavin/safe-which"); +const uuid_1 = require("uuid"); +const actions_util_1 = require("./actions-util"); const util_1 = require("./util"); const MIN_REQUIRED_BSD_TAR_VERSION = "3.4.3"; const MIN_REQUIRED_GNU_TAR_VERSION = "1.31"; @@ -90,21 +98,59 @@ async function isZstdAvailable(logger) { return { available: false }; } } -async function extract(path, compressionMethod) { +async function extract(tarPath, compressionMethod, tarVersion) { switch (compressionMethod) { case "gzip": - // While we could also ask tar to autodetect the compression method, - // we defensively keep the gzip call identical as requesting a gzipped - // bundle will soon be a fallback option. - return await toolcache.extractTar(path); + // Defensively continue to call the toolcache API as requesting a gzipped + // bundle may be a fallback option. + return await toolcache.extractTar(tarPath); case "zstd": - // By specifying only the "x" flag, we ask tar to autodetect the - // compression method. - return await toolcache.extractTar(path, undefined, "x"); + if (!tarVersion) { + throw new Error("Could not determine tar version, which is required to extract a Zstandard archive."); + } + return await extractTarZst(tarPath, tarVersion); + } +} +/** + * Extract a compressed tar archive + * + * @param file path to the tar + * @param dest destination directory. Optional. + * @returns path to the destination directory + */ +async function extractTarZst(file, tarVersion) { + if (!file) { + throw new Error("parameter 'file' is required"); } + // Create dest + const dest = await createExtractFolder(); + // Initialize args + const args = ["-x", "-v"]; + let destArg = dest; + let fileArg = file; + if (process.platform === "win32" && tarVersion.type === "gnu") { + args.push("--force-local"); + destArg = dest.replace(/\\/g, "/"); + // Technically only the dest needs to have `/` but for aesthetic consistency + // convert slashes in the file arg too. + fileArg = file.replace(/\\/g, "/"); + } + if (tarVersion.type === "gnu") { + // Suppress warnings when using GNU tar to extract archives created by BSD tar + args.push("--warning=no-unknown-keyword"); + args.push("--overwrite"); + } + args.push("-C", destArg, "-f", fileArg); + await (0, actions_util_1.runTool)(`tar`, args); + return dest; +} +async function createExtractFolder() { + const dest = path_1.default.join((0, actions_util_1.getTemporaryDirectory)(), (0, uuid_1.v4)()); + fs.mkdirSync(dest, { recursive: true }); + return dest; } -function inferCompressionMethod(path) { - if (path.endsWith(".tar.gz")) { +function inferCompressionMethod(tarPath) { + if (tarPath.endsWith(".tar.gz")) { return "gzip"; } return "zstd"; diff --git a/lib/tar.js.map b/lib/tar.js.map index 00473d99a1..649c66ac36 100644 --- a/lib/tar.js.map +++ b/lib/tar.js.map @@ -1 +1 @@ -{"version":3,"file":"tar.js","sourceRoot":"","sources":["../src/tar.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"tar.js","sourceRoot":"","sources":["../src/tar.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/setup-codeql.ts b/src/setup-codeql.ts index 5e70e59273..da24245c32 100644 --- a/src/setup-codeql.ts +++ b/src/setup-codeql.ts @@ -9,7 +9,7 @@ import { default as deepEqual } from "fast-deep-equal"; import * as semver from "semver"; import { v4 as uuidV4 } from "uuid"; -import { isRunningLocalAction } from "./actions-util"; +import { CommandInvocationError, isRunningLocalAction } from "./actions-util"; import * as api from "./api-client"; // Note: defaults.json is referenced from the CodeQL Action sync tool and the Actions runner image // creation scripts. Ensure that any changes to the format of this file are compatible with both of @@ -497,6 +497,7 @@ export const downloadCodeQL = async function ( maybeBundleVersion: string | undefined, maybeCliVersion: string | undefined, apiDetails: api.GitHubApiDetails, + tarVersion: tar.TarVersion | undefined, tempDir: string, logger: Logger, ): Promise<{ @@ -554,6 +555,7 @@ export const downloadCodeQL = async function ( const extractedBundlePath = await tar.extract( archivedBundlePath, compressionMethod, + tarVersion, ); const extractionDurationMs = Math.round(performance.now() - extractionStart); logger.debug( @@ -700,6 +702,10 @@ export async function setupCodeQLBundle( ); } catch (e) { zstdFailureReason = util.getErrorMessage(e) || "unknown error"; + if (e instanceof CommandInvocationError) { + zstdFailureReason += ` Full error: ${e.stderr}`; + logger.debug(`Invocation output the following to stderr: ${e.stderr}`); + } logger.warning( `Failed to set up CodeQL tools with zstd. Falling back to gzipped version. Error: ${util.getErrorMessage( e, @@ -755,7 +761,11 @@ async function setupCodeQLBundleWithCompressionMethod( const compressionMethod = tar.inferCompressionMethod( source.codeqlTarPath, ); - codeqlFolder = await tar.extract(source.codeqlTarPath, compressionMethod); + codeqlFolder = await tar.extract( + source.codeqlTarPath, + compressionMethod, + zstdAvailability.version, + ); toolsSource = ToolsSource.Local; break; } @@ -770,6 +780,7 @@ async function setupCodeQLBundleWithCompressionMethod( source.bundleVersion, source.cliVersion, apiDetails, + zstdAvailability.version, tempDir, logger, ); diff --git a/src/tar.ts b/src/tar.ts index 71d346ae36..c926dc0ece 100644 --- a/src/tar.ts +++ b/src/tar.ts @@ -1,7 +1,12 @@ +import * as fs from "fs"; +import path from "path"; + import { ToolRunner } from "@actions/exec/lib/toolrunner"; import * as toolcache from "@actions/tool-cache"; import { safeWhich } from "@chrisgavin/safe-which"; +import { v4 as uuidV4 } from "uuid"; +import { getTemporaryDirectory, runTool } from "./actions-util"; import { Logger } from "./logging"; import { assertNever } from "./util"; @@ -84,24 +89,77 @@ export async function isZstdAvailable( export type CompressionMethod = "gzip" | "zstd"; export async function extract( - path: string, + tarPath: string, compressionMethod: CompressionMethod, + tarVersion: TarVersion | undefined, ): Promise { switch (compressionMethod) { case "gzip": - // While we could also ask tar to autodetect the compression method, - // we defensively keep the gzip call identical as requesting a gzipped - // bundle will soon be a fallback option. - return await toolcache.extractTar(path); + // Defensively continue to call the toolcache API as requesting a gzipped + // bundle may be a fallback option. + return await toolcache.extractTar(tarPath); case "zstd": - // By specifying only the "x" flag, we ask tar to autodetect the - // compression method. - return await toolcache.extractTar(path, undefined, "x"); + if (!tarVersion) { + throw new Error( + "Could not determine tar version, which is required to extract a Zstandard archive.", + ); + } + return await extractTarZst(tarPath, tarVersion); + } +} + +/** + * Extract a compressed tar archive + * + * @param file path to the tar + * @param dest destination directory. Optional. + * @returns path to the destination directory + */ +export async function extractTarZst( + file: string, + tarVersion: TarVersion, +): Promise { + if (!file) { + throw new Error("parameter 'file' is required"); + } + + // Create dest + const dest = await createExtractFolder(); + + // Initialize args + const args = ["-x", "-v"]; + + let destArg = dest; + let fileArg = file; + if (process.platform === "win32" && tarVersion.type === "gnu") { + args.push("--force-local"); + destArg = dest.replace(/\\/g, "/"); + + // Technically only the dest needs to have `/` but for aesthetic consistency + // convert slashes in the file arg too. + fileArg = file.replace(/\\/g, "/"); + } + + if (tarVersion.type === "gnu") { + // Suppress warnings when using GNU tar to extract archives created by BSD tar + args.push("--warning=no-unknown-keyword"); + args.push("--overwrite"); } + + args.push("-C", destArg, "-f", fileArg); + await runTool(`tar`, args); + + return dest; +} + +async function createExtractFolder(): Promise { + const dest = path.join(getTemporaryDirectory(), uuidV4()); + fs.mkdirSync(dest, { recursive: true }); + return dest; } -export function inferCompressionMethod(path: string): CompressionMethod { - if (path.endsWith(".tar.gz")) { +export function inferCompressionMethod(tarPath: string): CompressionMethod { + if (tarPath.endsWith(".tar.gz")) { return "gzip"; } return "zstd";