ci: add multi-platform compilation pipeline for arcade games#253
Open
seventhback777 wants to merge 1 commit into
Open
ci: add multi-platform compilation pipeline for arcade games#253seventhback777 wants to merge 1 commit into
seventhback777 wants to merge 1 commit into
Conversation
Add GitHub Actions workflow for automated compilation and release: - compile-games.yml: multi-platform builds (Windows x86, Linux x86, Linux ARM/RPi) with artifact management and GitHub Release publishing; incremental compile detection based on changed games per merge - compile-game.sh: improved compilation logic with ARM target handling, asset bundling into platform tarballs, C# runtime injection - games/*/config.txt: add compile commands and CI configuration for 2dRacer, HomemadePong, Pingpong, Runner_Dash, SkySurge, VentureAdventure, car-race - .github/workflows/about.md: workflow documentation - advanced-game-design-team/about.md, scripts/about.md: team docs
RealH4D35
suggested changes
May 24, 2026
There was a problem hiding this comment.
Review for PR #253 (CI Pipeline)
Tested on: Arch Linux
Required fixes (add these upstream):
-
Critical:
scripts/compile-game.sh– Removeeval $command(critical security vulnerability).
Thecompile-commandfromconfig.txtis executed as arbitrary shell code. This permits full command injection (RCE) during both local builds and CI, especially dangerous inpull_request_targetworkflows.
Recommended fix: use safe execution (e.g.bash -c "$command"with strict parsing, or array‑based execution with whitelisting). -
Stability:
scripts/compile-game.sh– Replacemkdir publishedwithmkdir -p publishedto ensure idempotent builds and avoid errors on repeated runs.
Features work as expected:
- Multi‑platform compilation flow executes correctly on Arch Linux.
- C# projects correctly publish via
skm dotnet publishwith ARM64 handling. - Asset bundling into
compiled/works as intended – assets are included in the final tarball. - Explicit
.csprojtargeting resolves ambiguity in multi‑project games (e.g. SkySurge, 2dRacer). - ARM runtime adjustment to
linux-arm64is functional and produces valid output. - Release artifact generation pipeline successfully produces structured
tar.gzoutputs.
Minor issues (non‑blocking):
- Several config files contain Windows CRLF (
^M) line endings. - Some workflow steps suppress failures with warnings, which may allow silent build issues.
- CI logic is complex and could benefit from simplification for maintainability.
Architectural note:
- This PR significantly restructures the release system, moving from “commit binaries” to “GitHub release artifacts + reuse strategy”. The change is a meaningful improvement and appears functionally correct after local testing.
Relationship to PR #254:
- PR #254 fixes real C++ build failures in
BelowTheSurface,HomemadePong,Pingpong, andcar-race. Without those fixes, the new CI pipeline would fail immediately for these games. Merge PR #254 first, then rebase and merge this PR after theevalvulnerability is resolved.
Not ready to merge – the eval security issue is a blocker. Approve after a safe command execution method is implemented.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
compile-games.yml: GitHub Actions workflow for automated multi-platform builds (Windows x86, Linux x86, Linux ARM/RPi) with incremental compile detection and GitHub Release publishingcompile-game.sh: improved script with ARM target handling, asset bundling into platform tarballs, C# runtime injectiongames/*/config.txt: compile commands for 2dRacer, HomemadePong, Pingpong, Runner_Dash, SkySurge, VentureAdventure, car-race.github/workflows/about.md,advanced-game-design-team/about.md,scripts/about.md: documentationTest plan