From 938d1c591f40726c873a2ac4170c7d2c4cf87433 Mon Sep 17 00:00:00 2001 From: "Michael B. Gale" Date: Mon, 19 Oct 2026 19:59:14 +0100 Subject: [PATCH] Add `setFailed` to `ActionsEnv` --- lib/entry-points.js | 11 ++++++----- src/actions-util.ts | 2 ++ src/testing-utils.ts | 15 ++++++++++++++- 3 files changed, 22 insertions(+), 6 deletions(-) diff --git a/lib/entry-points.js b/lib/entry-points.js index d8de64099..acde1abe5 100644 --- a/lib/entry-points.js +++ b/lib/entry-points.js @@ -21649,7 +21649,7 @@ var require_core = __commonJS({ exports2.getBooleanInput = getBooleanInput; exports2.setOutput = setOutput7; exports2.setCommandEcho = setCommandEcho; - exports2.setFailed = setFailed12; + exports2.setFailed = setFailed13; exports2.isDebug = isDebug5; exports2.debug = debug6; exports2.error = error3; @@ -21733,7 +21733,7 @@ Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); function setCommandEcho(enabled) { (0, command_1.issue)("echo", enabled ? "on" : "off"); } - function setFailed12(message) { + function setFailed13(message) { process.exitCode = ExitCode.Failure; error3(message); } @@ -145643,11 +145643,11 @@ Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); (0, command_1.issue)("echo", enabled ? "on" : "off"); } exports2.setCommandEcho = setCommandEcho; - function setFailed12(message) { + function setFailed13(message) { process.exitCode = ExitCode.Failure; error3(message); } - exports2.setFailed = setFailed12; + exports2.setFailed = setFailed13; function isDebug5() { return process.env["RUNNER_DEBUG"] === "1"; } @@ -170132,7 +170132,8 @@ var Failure = class { function getActionsEnv() { return { getRequiredInput, - getOptionalInput + getOptionalInput, + setFailed: core4.setFailed }; } var getRequiredInput = function(name) { diff --git a/src/actions-util.ts b/src/actions-util.ts index 13e33a8e9..bc1d85202 100644 --- a/src/actions-util.ts +++ b/src/actions-util.ts @@ -30,6 +30,7 @@ declare const __CODEQL_ACTION_VERSION__: string; export interface ActionsEnv { getRequiredInput: (name: string) => string; getOptionalInput: (name: string) => string | undefined; + setFailed: (message: string) => void; } /** @@ -39,6 +40,7 @@ export function getActionsEnv(): ActionsEnv { return { getRequiredInput, getOptionalInput, + setFailed: core.setFailed, }; } diff --git a/src/testing-utils.ts b/src/testing-utils.ts index 8c38187c4..13110959b 100644 --- a/src/testing-utils.ts +++ b/src/testing-utils.ts @@ -227,8 +227,13 @@ export function getTestEnv(testEnv: NodeJS.ProcessEnv = {}): Env { return getEnv(testEnv); } -/** An implementation of `ActionsEnv` for use in tests. */ +/** + * An implementation of {@link ActionsEnv} for use in tests. + * The methods of instances of this class are intended to be stubbed. + */ class TestActionsEnv implements ActionsEnv { + private failed: boolean = false; + constructor(private readonly env: Env) {} public clone(env: Env): this { @@ -242,6 +247,14 @@ class TestActionsEnv implements ActionsEnv { public getOptionalInput(_name: string): string | undefined { return undefined; } + + public setFailed(_message: string) { + this.failed = true; + } + + get hasFailed() { + return this.failed; + } } /**