From 9e5496f6b25f76d2af55aa3266c7b647e894cc2a Mon Sep 17 00:00:00 2001 From: Tachikoma Date: Mon, 3 Aug 2026 16:31:57 -0400 Subject: [PATCH] Clone libakgl's other two submodules, and pin upload-artifact to v3 Two more gaps that only became visible once the errno fix let the jobs run far enough to hit them. akgl_build cloned six of libakgl's submodules and needs eight. libakgl does not add_subdirectory deps/libccd or deps/clay -- their own CMakeLists are unusable as subprojects -- it compiles them into itself, so nothing declares them and configuration dies at deps/libakgl/CMakeLists.txt:282 with "File deps/libccd/src/ccd/config.h.cmake.in does not exist". deps/tg stays out: nothing references it. The X11 packages from the previous commit did their job -- SDL now configures the lot: "X11 libraries: xcursor xdbe xfixes xinput2 xrandr xscrnsaver xshape xsync xtest". coverage passes its gate now (112/112, lines 94.1% against a 90 floor) and failed on the upload instead. actions/upload-artifact@v4 bundles @actions/artifact v2, whose isGhes() treats any GITHUB_SERVER_URL that is not github.com as GitHub Enterprise Server and refuses outright. @v3 uses the older artifact API, which Gitea 1.25.3 does implement. The step had never had a file to upload before -- gcovr was never reached, so it warned "No files were found" and passed -- which is why this surfaced only now. Same class of accommodation as annotate_only on the junit reporter. Co-Authored-By: Claude Opus 5 (1M context) --- .gitea/workflows/ci.yaml | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index f260604..651d849 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -148,9 +148,21 @@ jobs: --fail-under-line 90 # Publish even when the threshold gate fails, so the uncovered lines are # visible -- each one is a missing test. + # + # @v3, not @v4, and that is Gitea rather than preference. @v4 bundles + # @actions/artifact v2, whose isGhes() treats any GITHUB_SERVER_URL that is + # not github.com as GitHub Enterprise Server and refuses outright: + # "GHESNotSupportedError: @actions/artifact v2.0.0+, upload-artifact@v4+ + # and download-artifact@v4+ are not currently supported on GHES". @v3 uses + # the older artifact API, which this forge does implement. + # + # This never showed before because the step had nothing to upload: gcovr + # was never reached, so the step warned "No files were found" and passed. + # Fixing the suite is what first gave it a real file to refuse. Same class + # of accommodation as the annotate_only flag on the junit reporter above. - name: upload coverage reports if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 with: name: code-coverage path: build-coverage/coverage/ @@ -175,11 +187,23 @@ jobs: # embedded it takes a find_package path instead, so our CMakeLists declares # those targets first and needs the submodules present. Six of them, none # recursive. Filed upstream as libakgl API-gap item 5. + # + # Eight, not six: deps/libccd and deps/clay were missing and are not + # optional. libakgl does not add_subdirectory either of them -- their own + # CMakeLists are unusable as subprojects -- it compiles them into itself, + # so nothing declares them and configuration dies late with "File + # deps/libccd/src/ccd/config.h.cmake.in does not exist" at + # deps/libakgl/CMakeLists.txt:282. clay is the same shape one step later: + # deps/clay/clay.h is on the include path and installed. + # + # deps/tg is a real submodule of libakgl and is deliberately not here -- + # nothing in its CMakeLists references it. libakerror and libakstdlib are + # skipped for the reason the checkout note above gives. - name: libakgl dependencies run: | git -C deps/libakgl submodule update --init \ deps/SDL deps/SDL_image deps/SDL_mixer deps/SDL_ttf \ - deps/jansson deps/semver + deps/jansson deps/semver deps/libccd deps/clay # libfreetype-dev and libharfbuzz-dev are load-bearing, not incidental. # SDL_ttf prefers the system copies -- it reports "Using system freetype # library" and links libfreetype.so.6 -- and without them it would reach