Skip to content

Test/ci after fixes#250

Open
seventhback777 wants to merge 24 commits into
thoth-tech:mainfrom
seventhback777:test/ci-after-fixes
Open

Test/ci after fixes#250
seventhback777 wants to merge 24 commits into
thoth-tech:mainfrom
seventhback777:test/ci-after-fixes

Conversation

@seventhback777
Copy link
Copy Markdown

Description

Please include a summary of the change and which issue is fixed. Please also include relevant
motivation and context. List any dependencies that are required for this change.

Fixes # (issue)

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as
    expected)
  • Documentation (update or new)

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Provide instructions so we can
reproduce. Please also list any relevant details for your test configuration

Testing Checklist

  • Tested in latest Chrome
  • Tested in latest Safari
  • Tested in latest Firefox

Checklist

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have requested a review from ... on the Pull Request

test: trigger full CI pipeline (C++ and C# games)
test: trigger bootstrap full release
- HomemadePong, car-race: qualify std::to_string to resolve
  ambiguity with SplashKit's to_string overloads
- car-race, Pingpong: enable compile-command=skm g++ *.cpp so all
  source files link (default command compiles only program.cpp)
- BelowTheSurface: replace center_point(sprite) with
  center_point(sprite_collision_rectangle(...)) — the sprite overload
  was removed in current SplashKit; vendored include/sprites.h is stale
- get-game-directory: replace gh release list (silently fails in
  pull_request_target context) with REST API call; add vars.BOOTSTRAP
  override; echo PREV_TAG/BOOTSTRAP for diagnosability
- recursive .csproj detection (find -maxdepth 3) so 2dRacer and
  SkySurge are correctly classified as C#
- per-game compile failures no longer fail the job; emit ::warning::
  and continue. linux-x86 also size-checks the produced tarball
- publish-release: add MIN_SIZE=1024 guard so empty tarballs from
  failed compiles do not overwrite usable assets from the previous
  release; fall back to reuse path automatically
Single-game change to verify incremental detection now picks only
HomemadePong (not all 11 games), warnings surface from games that
still fail to compile, and size-guard prevents empty tarballs from
being published.
…kySurge

compile-game.sh: the C# branch built up a custom compile string but
never executed it (no eval), so any compile-command= for a C# game was
silently ignored. The C++ branch already had eval $command — this is
the missing companion.

With that fix, 2dRacer and SkySurge can now use compile-command to
disambiguate their projects:

- 2dRacer has no .csproj at the root (two demos in AdvancedDemo/ and
  BasicDemo/); publish AdvancedDemo/_2dRacerDemo.csproj explicitly
- SkySurge has both "Sky Surge.sln" and Sky_Surge.csproj at the root,
  which makes dotnet publish ambiguous; pin it to the .csproj
BelowTheSurface: the previous attempt switched center_point(sprite)
to center_point(sprite_collision_rectangle(...)), but the SplashKit
build installed by skm linux install also lacks a rectangle overload.
Compute the center inline from sprite_x/y/width/height so the code
does not depend on any geometry overload that the live SplashKit may
or may not ship.

Pingpong: enabling compile-command=skm g++ *.cpp surfaced 5 more
to_string ambiguities in game.cpp (only program.cpp was visible
before, since the default command compiled a single file). Same fix
as the others — qualify std::to_string.
…ambiguate to_screen

Previous attempt used to_screen({ x, y }) but splashkit has multiple
to_screen overloads, so the brace-enclosed initializer list left g++
unable to pick a candidate. point_at(x, y) returns an unambiguous
point_2d, which to_screen(const point_2d&) accepts cleanly.
The old cortex-a8 target lacks ARMv8 FP16 NEON intrinsics. As a result
llama.cpp (now bundled with SplashKit) failed to compile during
skm linux install with: error: use of undeclared identifier 'vld1q_f16'.
That left libSplashKit.so unbuilt, so every C++ ARM game link failed
with: cannot find -lSplashKit. C# ARM games were unaffected because
dotnet publish does not link the SplashKit C library.

cortex-a53 is the RPi 3 CPU and is the oldest in our deployment range
(RPi 3/4/5). ARM binaries are forward-compatible, so a53-targeted
artifacts run on a72 (RPi 4) and a76 (RPi 5). base_image stays on the
32-bit raspios_lite for now to avoid changing two things at once; if
the FP16 intrinsics still fall over in AArch32 we can switch to
raspios_lite_arm64.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant