From 7b33b610d4e72050a43339fd3ef1c113b6e692b4 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 7 Aug 2025 09:53:36 +0200 Subject: [PATCH] Make all errors on an unsupported platform `ConfigurationError`s --- lib/cli-errors.js | 28 +++++++++++++++++++++++++--- lib/cli-errors.js.map | 2 +- src/cli-errors.ts | 40 +++++++++++++++++++++++++++++++++++++--- 3 files changed, 63 insertions(+), 7 deletions(-) diff --git a/lib/cli-errors.js b/lib/cli-errors.js index 7c0969036..ac82524b6 100644 --- a/lib/cli-errors.js +++ b/lib/cli-errors.js @@ -1,7 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cliErrorsConfig = exports.CliConfigErrorCategory = exports.CliError = void 0; -exports.getCliConfigCategoryIfExists = getCliConfigCategoryIfExists; exports.wrapCliConfigurationError = wrapCliConfigurationError; const actions_util_1 = require("./actions-util"); const doc_url_1 = require("./doc-url"); @@ -272,11 +271,34 @@ function getCliConfigCategoryIfExists(cliError) { return undefined; } /** - * Changes an error received from the CLI to a ConfigurationError with optionally an extra - * error message appended, if it exists in a known set of configuration errors. Otherwise, + * Check if we are running on an unsupported platform/architecture combination. + * If so, return a ConfigurationError with a message that explains that, mentioning + * the underlying `cliError`. Otherwise, reutrn `undefined`. + */ +function getUnsupportedPlatformError(cliError) { + if (![ + ["linux", "x64"], + ["win32", "x64"], + ["darwin", "x64"], + ["darwin", "arm64"], + ].some(([platform, arch]) => platform === process.platform && arch === process.arch)) { + return new util_1.ConfigurationError("The CodeQL CLI does not support the platform/architecture combination of " + + `${process.platform}/${process.arch} ` + + "(see https://codeql.github.com/docs/codeql-overview/system-requirements). " + + `The underlying error was: ${cliError.message}`); + } + return undefined; +} +/** + * Changes an error received from the CLI to a ConfigurationError with the message + * optionally being transformed, if it is a known configuration error. Otherwise, * simply returns the original error. */ function wrapCliConfigurationError(cliError) { + const unsupportedPlatformError = getUnsupportedPlatformError(cliError); + if (unsupportedPlatformError !== undefined) { + return unsupportedPlatformError; + } const cliConfigErrorCategory = getCliConfigCategoryIfExists(cliError); if (cliConfigErrorCategory === undefined) { return cliError; diff --git a/lib/cli-errors.js.map b/lib/cli-errors.js.map index fc8697dca..94c609ec5 100644 --- a/lib/cli-errors.js.map +++ b/lib/cli-errors.js.map @@ -1 +1 @@ -{"version":3,"file":"cli-errors.js","sourceRoot":"","sources":["../src/cli-errors.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"cli-errors.js","sourceRoot":"","sources":["../src/cli-errors.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/cli-errors.ts b/src/cli-errors.ts index 4164db368..642603164 100644 --- a/src/cli-errors.ts +++ b/src/cli-errors.ts @@ -294,7 +294,7 @@ export const cliErrorsConfig: Record< * the error messages in the config record, or the exit codes match, return the error category; * if not, return undefined. */ -export function getCliConfigCategoryIfExists( +function getCliConfigCategoryIfExists( cliError: CliError, ): CliConfigErrorCategory | undefined { for (const [category, configuration] of Object.entries(cliErrorsConfig)) { @@ -317,11 +317,45 @@ export function getCliConfigCategoryIfExists( } /** - * Changes an error received from the CLI to a ConfigurationError with optionally an extra - * error message appended, if it exists in a known set of configuration errors. Otherwise, + * Check if we are running on an unsupported platform/architecture combination. + * If so, return a ConfigurationError with a message that explains that, mentioning + * the underlying `cliError`. Otherwise, reutrn `undefined`. + */ +function getUnsupportedPlatformError( + cliError: CliError, +): ConfigurationError | undefined { + if ( + ![ + ["linux", "x64"], + ["win32", "x64"], + ["darwin", "x64"], + ["darwin", "arm64"], + ].some( + ([platform, arch]) => + platform === process.platform && arch === process.arch, + ) + ) { + return new ConfigurationError( + "The CodeQL CLI does not support the platform/architecture combination of " + + `${process.platform}/${process.arch} ` + + "(see https://codeql.github.com/docs/codeql-overview/system-requirements). " + + `The underlying error was: ${cliError.message}`, + ); + } + return undefined; +} + +/** + * Changes an error received from the CLI to a ConfigurationError with the message + * optionally being transformed, if it is a known configuration error. Otherwise, * simply returns the original error. */ export function wrapCliConfigurationError(cliError: CliError): Error { + const unsupportedPlatformError = getUnsupportedPlatformError(cliError); + if (unsupportedPlatformError !== undefined) { + return unsupportedPlatformError; + } + const cliConfigErrorCategory = getCliConfigCategoryIfExists(cliError); if (cliConfigErrorCategory === undefined) { return cliError;