SDL: ci: allow steamrt3 to fail

From 99fe610117119b807a466a02fb524cdc9299184c Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Thu, 10 Sep 2026 17:44:26 +0200
Subject: [PATCH] ci: allow steamrt3 to fail

See https://github.com/libsdl-org/SDL/issues/16285

[sdl-ci-filter *]
---
 .github/workflows/create-test-plan.py | 8 +++++++-
 .github/workflows/generic.yml         | 1 +
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/create-test-plan.py b/.github/workflows/create-test-plan.py
index ce7d94ae3ed37..8d72c06d25183 100755
--- a/.github/workflows/create-test-plan.py
+++ b/.github/workflows/create-test-plan.py
@@ -130,6 +130,9 @@ class JobSpec:
     gdk: bool = False
     vita_gles: Optional[VitaGLES] = None
     more_hard_deps: bool = False
+    allow_failure: bool = False
+
+
 JOB_SPECS = {
     "msys2-mingw32": JobSpec(name="Windows (msys2, mingw32)",               priority=False, os=JobOs.WindowsLatest,     platform=SdlPlatform.Msys2,       artifact="SDL-mingw32",            msys2_platform=Msys2Platform.Mingw32, ),
     "msys2-mingw64": JobSpec(name="Windows (msys2, mingw64)",               priority=False, os=JobOs.WindowsLatest,     platform=SdlPlatform.Msys2,       artifact="SDL-mingw64",            msys2_platform=Msys2Platform.Mingw64, ),
@@ -145,7 +148,7 @@ class JobSpec:
     "ubuntu-22.04": JobSpec(name="Ubuntu 22.04",                            priority=False, os=JobOs.Ubuntu22_04,       platform=SdlPlatform.Linux,       artifact="SDL-ubuntu22.04", ),
     "ubuntu-latest": JobSpec(name="Ubuntu (latest)",                        priority=False, os=JobOs.UbuntuLatest,      platform=SdlPlatform.Linux,       artifact="SDL-ubuntu-latest", ),
     "ubuntu-24.04-arm64": JobSpec(name="Ubuntu 24.04 (ARM64)",              priority=False, os=JobOs.Ubuntu24_04_arm,   platform=SdlPlatform.Linux,       artifact="SDL-ubuntu24.04-arm64", ),
-    "steamrt3": JobSpec(name="Steam Linux Runtime 3.0 (x86_64)",            priority=False, os=JobOs.UbuntuLatest,      platform=SdlPlatform.Linux,       artifact="SDL-steamrt3",           container="registry.gitlab.steamos.cloud/steamrt/sniper/sdk:latest" ),
+    "steamrt3": JobSpec(name="Steam Linux Runtime 3.0 (x86_64)",            priority=False, os=JobOs.UbuntuLatest,      platform=SdlPlatform.Linux,       artifact="SDL-steamrt3",           container="registry.gitlab.steamos.cloud/steamrt/sniper/sdk:latest",   allow_failure=True ),
     "steamrt4": JobSpec(name="Steam Linux Runtime 4.0 (x86_64)",            priority=True,  os=JobOs.UbuntuLatest,      platform=SdlPlatform.Linux,       artifact="SDL-steamrt4",           container="registry.gitlab.steamos.cloud/steamrt/steamrt4/sdk:latest", more_hard_deps = True, ),
     "steamrt4-arm64": JobSpec(name="Steam Linux Runtime 4.0 (arm64)",       priority=False, os=JobOs.Ubuntu24_04_arm,   platform=SdlPlatform.Linux,       artifact="SDL-steamrt4-arm64",     container="registry.gitlab.steamos.cloud/steamrt/steamrt4/sdk/arm64:latest", more_hard_deps = True, ),
     "ubuntu-intel-icx": JobSpec(name="Ubuntu 24.04 (Intel oneAPI)",         priority=False, os=JobOs.Ubuntu24_04,       platform=SdlPlatform.Linux,       artifact="SDL-ubuntu24.04-oneapi", intel=IntelCompiler.Icx, ),
@@ -265,6 +268,7 @@ class JobDetails:
     setup_gage_sdk_path: str = ""
     binutils_strings: str = "strings"
     ctest_args: str = ""
+    allow_failure: bool = False
 
     def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
         data = {
@@ -336,6 +340,7 @@ def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
             "setup-ngage-sdk-path": self.setup_gage_sdk_path,
             "binutils-strings": self.binutils_strings,
             "ctest-args": self.ctest_args,
+            "allow-failure": self.allow_failure,
         }
         return {k: v for k, v in data.items() if v != ""}
 
@@ -361,6 +366,7 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool, ctest_args
         platform=spec.platform.value,
         sudo="sudo",
         no_cmake=spec.no_cmake,
+        allow_failure=spec.allow_failure,
     )
     spec_arch = get_job_arch(spec.os)
     if job.os.startswith("ubuntu"):
diff --git a/.github/workflows/generic.yml b/.github/workflows/generic.yml
index 7eed31f6e7082..fbf4208956d2b 100644
--- a/.github/workflows/generic.yml
+++ b/.github/workflows/generic.yml
@@ -14,6 +14,7 @@ jobs:
     name: ${{ matrix.platform.name }}
     runs-on: ${{ matrix.platform.os }}
     container: ${{ matrix.platform.container }}
+    continue-on-error: ${{ matrix.platform.allow-failure }}
     defaults:
       run:
         shell: ${{ matrix.platform.shell }}