From 2242cfac9fcc7271b63fa7ef147852dd6759556b Mon Sep 17 00:00:00 2001 From: Andrew Kesterson Date: Sun, 2 Aug 2026 13:39:17 -0400 Subject: [PATCH] Unbreak CI: https submodule URLs, and three suites that assumed a display CI has never gone green in the retained run history, and every failure is the same 20-second death during checkout: six submodules -- SDL, SDL_image, SDL_mixer, SDL_ttf, jansson, semver -- were registered with git@github.com: SSH URLs, and the runner has no GitHub key. The https submodules (libccd, tg, clay, and the two starfort ones) clone fine in the same run. All six now use https, which is what every stanza added since already did; these are public upstream repositories nothing here pushes to, so SSH bought nothing. Second problem, waiting right behind the first: the character, sprite and tilemap suites were the only three of seventeen that never set the dummy video/audio/software-render hints, so on a headless runner they die in SDL_Init with "No available video device" before testing anything. They now set the same three hints the other fourteen suites set. (How this survived: every local run happens on a machine with a display, and CI never got far enough to run a test.) Pre-flighted locally against every job the workflow defines, headless with no driver variables in the environment, exactly as the runner would: Debug with -Werror and coverage builds clean and all 37 tests pass including the coverage fixtures; RelWithDebInfo with -Werror builds clean and the perf suites pass their budgets at full scale; doxygen Doxyfile exits 0 under FAIL_ON_WARNINGS; and the new ui suite runs under valgrind with zero errors and no leaks. Co-Authored-By: Claude Code (Claude Fable 5, claude-fable-5) Claude-Session: https://claude.ai/code/session_01KzBDV2fqgnUAcqCKqKvc71 --- .gitmodules | 12 ++++++------ tests/character.c | 4 ++++ tests/sprite.c | 4 ++++ tests/tilemap.c | 4 ++++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/.gitmodules b/.gitmodules index 1530379..e0a7d83 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,18 +1,18 @@ [submodule "deps/semver"] path = deps/semver - url = git@github.com:h2non/semver.c.git + url = https://github.com/h2non/semver.c.git [submodule "deps/SDL"] path = deps/SDL - url = git@github.com:libsdl-org/SDL.git + url = https://github.com/libsdl-org/SDL.git [submodule "deps/SDL_image"] path = deps/SDL_image - url = git@github.com:libsdl-org/SDL_image.git + url = https://github.com/libsdl-org/SDL_image.git [submodule "deps/SDL_mixer"] path = deps/SDL_mixer - url = git@github.com:libsdl-org/SDL_mixer.git + url = https://github.com/libsdl-org/SDL_mixer.git [submodule "deps/SDL_ttf"] path = deps/SDL_ttf - url = git@github.com:libsdl-org/SDL_ttf.git + url = https://github.com/libsdl-org/SDL_ttf.git [submodule "deps/libsdlerror"] path = deps/libakerror url = https://source.starfort.tech/andrew/libakerror.git @@ -21,7 +21,7 @@ url = https://source.starfort.tech/andrew/libakstdlib.git [submodule "deps/jansson"] path = deps/jansson - url = git@github.com:akheron/jansson.git + url = https://github.com/akheron/jansson.git [submodule "deps/libccd"] path = deps/libccd url = https://github.com/danfis/libccd.git diff --git a/tests/character.c b/tests/character.c index 794cfc4..5f47b0a 100644 --- a/tests/character.c +++ b/tests/character.c @@ -284,6 +284,10 @@ akerr_ErrorContext *test_character_sprite_rebind_releases_displaced(void) int main(void) { PREPARE_ERROR(errctx); + + SDL_SetHint(SDL_HINT_VIDEO_DRIVER, "dummy"); + SDL_SetHint(SDL_HINT_AUDIO_DRIVER, "dummy"); + SDL_SetHint(SDL_HINT_RENDER_DRIVER, "software"); ATTEMPT { CATCH(errctx, akgl_error_init()); akgl_renderer = &akgl_default_renderer; diff --git a/tests/sprite.c b/tests/sprite.c index 65147bf..248368a 100644 --- a/tests/sprite.c +++ b/tests/sprite.c @@ -240,6 +240,10 @@ int main(void) { PREPARE_ERROR(errctx); + SDL_SetHint(SDL_HINT_VIDEO_DRIVER, "dummy"); + SDL_SetHint(SDL_HINT_AUDIO_DRIVER, "dummy"); + SDL_SetHint(SDL_HINT_RENDER_DRIVER, "software"); + ATTEMPT { CATCH(errctx, akgl_error_init()); akgl_renderer = &akgl_default_renderer; diff --git a/tests/tilemap.c b/tests/tilemap.c index 233146f..5ad91c4 100644 --- a/tests/tilemap.c +++ b/tests/tilemap.c @@ -740,6 +740,10 @@ int main(void) { PREPARE_ERROR(errctx); + SDL_SetHint(SDL_HINT_VIDEO_DRIVER, "dummy"); + SDL_SetHint(SDL_HINT_AUDIO_DRIVER, "dummy"); + SDL_SetHint(SDL_HINT_RENDER_DRIVER, "software"); + ATTEMPT { CATCH(errctx, akgl_error_init()); akgl_gamemap = &akgl_default_gamemap;