From 19329e9dc603339340a1d60d96ebf056dfb2a931 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 2 Oct 2025 17:40:50 +0100 Subject: [PATCH 1/2] workflows: Do a build on Steam Runtime 2 'soldier' This is one of the older environments that we aim to support, so building on here will avoid newer-than-intended dependencies like #14106. Signed-off-by: Simon McVittie --- .github/workflows/create-test-plan.py | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/create-test-plan.py b/.github/workflows/create-test-plan.py index 67769cc33e548..0724bd8d44d7d 100755 --- a/.github/workflows/create-test-plan.py +++ b/.github/workflows/create-test-plan.py @@ -114,6 +114,7 @@ class JobSpec: "msvc-gdk-x64": JobSpec(name="GDK (MSVC, x64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-GDK", msvc_arch=MsvcArch.X64, msvc_project="VisualC-GDK/SDL.sln", gdk=True, no_cmake=True, ), "ubuntu-22.04": JobSpec(name="Ubuntu 22.04", os=JobOs.Ubuntu22_04, platform=SdlPlatform.Linux, artifact="SDL-ubuntu22.04", ), "ubuntu-24.04-arm64": JobSpec(name="Ubuntu 24.04 (ARM64)", os=JobOs.Ubuntu24_04_arm, platform=SdlPlatform.Linux, artifact="SDL-ubuntu24.04-arm64", ), + "steamrt2": JobSpec(name="Steam Linux Runtime 2.0 (x86_64)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Linux, artifact="SDL-steamrt2", container="registry.gitlab.steamos.cloud/steamrt/soldier/sdk:latest", ), "steamrt3": JobSpec(name="Steam Linux Runtime 3.0 (x86_64)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Linux, artifact="SDL-steamrt3", container="registry.gitlab.steamos.cloud/steamrt/sniper/sdk:latest", ), "steamrt3-arm64": JobSpec(name="Steam Linux Runtime 3.0 (arm64)", os=JobOs.Ubuntu24_04_arm, platform=SdlPlatform.Linux, artifact="SDL-steamrt3-arm64", container="registry.gitlab.steamos.cloud/steamrt/sniper/sdk/arm64:latest", ), "ubuntu-intel-icx": JobSpec(name="Ubuntu 22.04 (Intel oneAPI)", os=JobOs.Ubuntu22_04, platform=SdlPlatform.Linux, artifact="SDL-ubuntu22.04-oneapi", intel=IntelCompiler.Icx, ), From 5f84f94d1e4792ea08f5207fbca55edbc10aa003 Mon Sep 17 00:00:00 2001 From: Anonymous Maarten Date: Thu, 2 Oct 2025 20:27:15 +0200 Subject: [PATCH 2/2] ci: build Steam Runtime 2 without shared deps [sdl-ci-filter steamrt2] --- .github/workflows/create-test-plan.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/.github/workflows/create-test-plan.py b/.github/workflows/create-test-plan.py index 0724bd8d44d7d..66822f7c44df2 100755 --- a/.github/workflows/create-test-plan.py +++ b/.github/workflows/create-test-plan.py @@ -99,6 +99,7 @@ class JobSpec: clang_cl: bool = False gdk: bool = False vita_gles: Optional[VitaGLES] = None + deps_shared: bool = True JOB_SPECS = { @@ -114,7 +115,7 @@ class JobSpec: "msvc-gdk-x64": JobSpec(name="GDK (MSVC, x64)", os=JobOs.WindowsLatest, platform=SdlPlatform.Msvc, artifact="SDL-VC-GDK", msvc_arch=MsvcArch.X64, msvc_project="VisualC-GDK/SDL.sln", gdk=True, no_cmake=True, ), "ubuntu-22.04": JobSpec(name="Ubuntu 22.04", os=JobOs.Ubuntu22_04, platform=SdlPlatform.Linux, artifact="SDL-ubuntu22.04", ), "ubuntu-24.04-arm64": JobSpec(name="Ubuntu 24.04 (ARM64)", os=JobOs.Ubuntu24_04_arm, platform=SdlPlatform.Linux, artifact="SDL-ubuntu24.04-arm64", ), - "steamrt2": JobSpec(name="Steam Linux Runtime 2.0 (x86_64)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Linux, artifact="SDL-steamrt2", container="registry.gitlab.steamos.cloud/steamrt/soldier/sdk:latest", ), + "steamrt2": JobSpec(name="Steam Linux Runtime 2.0 (x86_64)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Linux, artifact="SDL-steamrt2", container="registry.gitlab.steamos.cloud/steamrt/soldier/sdk:latest", deps_shared=False), "steamrt3": JobSpec(name="Steam Linux Runtime 3.0 (x86_64)", os=JobOs.UbuntuLatest, platform=SdlPlatform.Linux, artifact="SDL-steamrt3", container="registry.gitlab.steamos.cloud/steamrt/sniper/sdk:latest", ), "steamrt3-arm64": JobSpec(name="Steam Linux Runtime 3.0 (arm64)", os=JobOs.Ubuntu24_04_arm, platform=SdlPlatform.Linux, artifact="SDL-steamrt3-arm64", container="registry.gitlab.steamos.cloud/steamrt/sniper/sdk/arm64:latest", ), "ubuntu-intel-icx": JobSpec(name="Ubuntu 22.04 (Intel oneAPI)", os=JobOs.Ubuntu22_04, platform=SdlPlatform.Linux, artifact="SDL-ubuntu22.04-oneapi", intel=IntelCompiler.Icx, ), @@ -316,6 +317,13 @@ def escape(s): return " ".join(escape(s)) +def cmake_yes_no(v): + if v: + return "YES" + else: + return "NO" + + def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDetails: job = JobDetails( name=spec.name, @@ -340,6 +348,7 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta win32 = spec.platform in (SdlPlatform.Msys2, SdlPlatform.Msvc) fpic = None build_parallel = True + job.cmake_arguments.append(f"-DSDL_DEPS_SHARED={cmake_yes_no(spec.deps_shared)}") if spec.lean: job.cppflags.append("-DSDL_LEAN_AND_MEAN=1") if win32: @@ -466,7 +475,12 @@ def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDeta job.apt_packages.extend(( "libunwind-dev", # For SDL_test memory tracking )) - job.ccache = True + if key in ("steamrt2", ): + job.ccache = False + job.cflags.append("-Wno-incompatible-pointer-types") # older PulseAudio headers lack const + job.cmake_arguments.append("-DSDL_KMSDRM=OFF") # kmsdrm libraries in soldier are too old + else: + job.ccache = True if trackmem_symbol_names: # older libunwind is slow job.cmake_arguments.append("-DSDLTEST_TIMEOUT_MULTIPLIER=2")