From 5f323cad05f186eb3f51dff5218a1e4407a26f7a Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Thu, 2 Apr 2026 18:46:26 +0100 Subject: [PATCH 1/3] Mark Swift incompatible OS as configuration error --- lib/analyze-action-post.js | 6 ++++++ lib/analyze-action.js | 6 ++++++ lib/autobuild-action.js | 6 ++++++ lib/init-action-post.js | 6 ++++++ lib/init-action.js | 6 ++++++ lib/resolve-environment-action.js | 6 ++++++ lib/setup-codeql-action.js | 6 ++++++ lib/start-proxy-action-post.js | 6 ++++++ lib/upload-lib.js | 6 ++++++ lib/upload-sarif-action-post.js | 6 ++++++ lib/upload-sarif-action.js | 6 ++++++ src/cli-errors.test.ts | 14 ++++++++++++++ src/cli-errors.ts | 7 +++++++ 13 files changed, 87 insertions(+) diff --git a/lib/analyze-action-post.js b/lib/analyze-action-post.js index c9a434400f..32196392d0 100644 --- a/lib/analyze-action-post.js +++ b/lib/analyze-action-post.js @@ -161960,6 +161960,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/analyze-action.js b/lib/analyze-action.js index 969d0f015a..2fabf45d96 100644 --- a/lib/analyze-action.js +++ b/lib/analyze-action.js @@ -107434,6 +107434,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/autobuild-action.js b/lib/autobuild-action.js index cdcceeb25d..a0accec339 100644 --- a/lib/autobuild-action.js +++ b/lib/autobuild-action.js @@ -104016,6 +104016,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/init-action-post.js b/lib/init-action-post.js index 1128ae8278..ddd0308c31 100644 --- a/lib/init-action-post.js +++ b/lib/init-action-post.js @@ -165315,6 +165315,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/init-action.js b/lib/init-action.js index 86b8fb3a16..ce0331f73a 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -107837,6 +107837,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/resolve-environment-action.js b/lib/resolve-environment-action.js index 8efaa0b031..6d6e29821f 100644 --- a/lib/resolve-environment-action.js +++ b/lib/resolve-environment-action.js @@ -104015,6 +104015,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/setup-codeql-action.js b/lib/setup-codeql-action.js index 3f54f6f0c0..73541a3b87 100644 --- a/lib/setup-codeql-action.js +++ b/lib/setup-codeql-action.js @@ -105062,6 +105062,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/start-proxy-action-post.js b/lib/start-proxy-action-post.js index 688eeb733b..25d0f40c6b 100644 --- a/lib/start-proxy-action-post.js +++ b/lib/start-proxy-action-post.js @@ -162127,6 +162127,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/upload-lib.js b/lib/upload-lib.js index 3a26187564..fc84b64a64 100644 --- a/lib/upload-lib.js +++ b/lib/upload-lib.js @@ -107067,6 +107067,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/upload-sarif-action-post.js b/lib/upload-sarif-action-post.js index 2585c49ad9..d2c4866978 100644 --- a/lib/upload-sarif-action-post.js +++ b/lib/upload-sarif-action-post.js @@ -161791,6 +161791,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/lib/upload-sarif-action.js b/lib/upload-sarif-action.js index b78507de3f..ac8ee8eac8 100644 --- a/lib/upload-sarif-action.js +++ b/lib/upload-sarif-action.js @@ -108505,6 +108505,12 @@ var cliErrorsConfig = { ) ] }, + ["SwiftIncompatibleOs" /* SwiftIncompatibleOs */]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS") + ] + }, ["UnsupportedBuildMode" /* UnsupportedBuildMode */]: { cliErrorMessageCandidates: [ new RegExp( diff --git a/src/cli-errors.test.ts b/src/cli-errors.test.ts index 7a3ed892ba..9e2d7dc799 100644 --- a/src/cli-errors.test.ts +++ b/src/cli-errors.test.ts @@ -299,6 +299,20 @@ test("wrapCliConfigurationError - swift build failed", (t) => { t.true(wrappedError instanceof ConfigurationError); }); +test("wrapCliConfigurationError - swift incompatible os", (t) => { + const commandError = new CommandInvocationError( + "codeql", + ["swift/tools/autobuild.sh"], + 1, + "2026-04-01 18:35:00 EST ERRO [extractor/main] [incompatible-os] Currently, Swift analysis is only supported on macOS. (IncompatibleOs.cpp:26)", + ); + const cliError = new CliError(commandError); + + const wrappedError = wrapCliConfigurationError(cliError); + + t.true(wrappedError instanceof ConfigurationError); +}); + test("wrapCliConfigurationError - pack cannot be found", (t) => { const commandError = new CommandInvocationError( "codeql", diff --git a/src/cli-errors.ts b/src/cli-errors.ts index 5aba268cab..84ec1aa4e6 100644 --- a/src/cli-errors.ts +++ b/src/cli-errors.ts @@ -144,6 +144,7 @@ export enum CliConfigErrorCategory { OutOfMemoryOrDisk = "OutOfMemoryOrDisk", PackCannotBeFound = "PackCannotBeFound", PackMissingAuth = "PackMissingAuth", + SwiftIncompatibleOs = "SwiftIncompatibleOs", SwiftBuildFailed = "SwiftBuildFailed", UnsupportedBuildMode = "UnsupportedBuildMode", } @@ -281,6 +282,12 @@ const cliErrorsConfig: Record = { ), ], }, + [CliConfigErrorCategory.SwiftIncompatibleOs]: { + cliErrorMessageCandidates: [ + new RegExp("\\[incompatible-os\\]"), + new RegExp("Swift analysis is only supported on macOS"), + ], + }, [CliConfigErrorCategory.UnsupportedBuildMode]: { cliErrorMessageCandidates: [ new RegExp( From e452857e57abf124ce8bc6415dd025417a9640ee Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Wed, 8 Apr 2026 16:33:19 +0100 Subject: [PATCH 2/3] Throw error early rather than warning --- lib/init-action.js | 10 +++++----- src/init-action.ts | 18 +++++++++--------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/init-action.js b/lib/init-action.js index ce0331f73a..e9afbeece8 100644 --- a/lib/init-action.js +++ b/lib/init-action.js @@ -110299,6 +110299,11 @@ async function run(startedAt) { enableFileCoverageInformation: fileCoverageResult.enabled, logger }); + if (config.languages.includes("swift" /* swift */) && process.platform === "linux") { + throw new ConfigurationError( + `Swift analysis on Ubuntu runner images is no longer supported. Please migrate to a macOS runner.` + ); + } if (repositoryPropertiesResult.isFailure()) { addNoLanguageDiagnostic( config, @@ -110383,11 +110388,6 @@ async function run(startedAt) { "Passing the GOFLAGS env parameter to the init action is deprecated. Please move this to the analyze action." ); } - if (config.languages.includes("swift" /* swift */) && process.platform === "linux") { - logger.warning( - `Swift analysis on Ubuntu runner images is no longer supported. Please migrate to a macOS runner if this affects you.` - ); - } if (config.languages.includes("go" /* go */) && process.platform === "linux") { try { const goBinaryPath = await io6.which("go", true); diff --git a/src/init-action.ts b/src/init-action.ts index 70d5d79ce5..fd24fa6f85 100644 --- a/src/init-action.ts +++ b/src/init-action.ts @@ -389,6 +389,15 @@ async function run(startedAt: Date) { logger, }); + if ( + config.languages.includes(KnownLanguage.swift) && + process.platform === "linux" + ) { + throw new ConfigurationError( + `Swift analysis on Ubuntu runner images is no longer supported. Please migrate to a macOS runner.`, + ); + } + if (repositoryPropertiesResult.isFailure()) { addNoLanguageDiagnostic( config, @@ -499,15 +508,6 @@ async function run(startedAt: Date) { ); } - if ( - config.languages.includes(KnownLanguage.swift) && - process.platform === "linux" - ) { - logger.warning( - `Swift analysis on Ubuntu runner images is no longer supported. Please migrate to a macOS runner if this affects you.`, - ); - } - if ( config.languages.includes(KnownLanguage.go) && process.platform === "linux" From 808513f0486bc371babf5ba9bc8cfdd90ae751c4 Mon Sep 17 00:00:00 2001 From: Henry Mercer Date: Wed, 8 Apr 2026 16:38:23 +0100 Subject: [PATCH 3/3] Update language aliases test --- .github/workflows/__language-aliases.yml | 4 ++-- pr-checks/checks/language-aliases.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/__language-aliases.yml b/.github/workflows/__language-aliases.yml index d64abe876d..a4cdb034bf 100644 --- a/.github/workflows/__language-aliases.yml +++ b/.github/workflows/__language-aliases.yml @@ -60,12 +60,12 @@ jobs: setup-kotlin: 'true' - uses: ./../action/init with: - languages: C#,java-kotlin,swift,typescript + languages: C#,java-kotlin,typescript tools: ${{ steps.prepare-test.outputs.tools-url }} - name: 'Check languages' run: | - expected_languages="csharp,java,swift,javascript" + expected_languages="csharp,java,javascript" actual_languages=$(jq -r '.languages | join(",")' "$RUNNER_TEMP"/config) if [ "$expected_languages" != "$actual_languages" ]; then diff --git a/pr-checks/checks/language-aliases.yml b/pr-checks/checks/language-aliases.yml index 8fcde341d0..b83dd5d0fa 100644 --- a/pr-checks/checks/language-aliases.yml +++ b/pr-checks/checks/language-aliases.yml @@ -5,12 +5,12 @@ versions: steps: - uses: ./../action/init with: - languages: C#,java-kotlin,swift,typescript + languages: C#,java-kotlin,typescript tools: ${{ steps.prepare-test.outputs.tools-url }} - name: "Check languages" run: | - expected_languages="csharp,java,swift,javascript" + expected_languages="csharp,java,javascript" actual_languages=$(jq -r '.languages | join(",")' "$RUNNER_TEMP"/config) if [ "$expected_languages" != "$actual_languages" ]; then