WIP: ci: run the checks and the builders on CircleCI for pull requests #283
No reviewers
Labels
No labels
area/accessibility
area/audio
area/input
area/install
area/menu
area/renderer
area/saves
area/upscaling
good first issue
gpu/amd
gpu/igpu
gpu/intel
gpu/nvidia
help wanted
kind
bug
kind
chore
kind
docs
kind
feature
kind
performance
kind
question
needs measurements
platform/linux
platform/steam-deck
platform/windows
preview
priority
critical
priority
high
priority
low
status
blocked
status
confirmed
status
duplicate
status
invalid
status
needs-info
status
wontfix
testing wanted
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Longshot!283
Loading…
Reference in a new issue
No description provided.
Delete branch "HumanBean/Longshot:circleci-project-setup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Pull requests get no run of the game-free checks or the builders today: Forgejo's CI runs only the light checks on a
pull request, and the builders only on main and releases. This runs all of them on CircleCI for each pull request.
What changed
.circleci/config.yml, four jobs taken from the Forgejo workflows:checks(everytests/run_all.pycheck in onejob, plus the Windows Builder's compile and its
--clidelivery check, asci.yml's part 1),linux-appimage(
build-linux.yml, inubuntu:22.04, with the AMD FSR 4 build check and the player's-build check),windows-builder(
build-windows.yml's package job: setup, publish, zip, the Windows-file checks and Wine) andwindows-vulkan(itsvulkan job). The AppImage, the zip and
longshot_vk.dllare kept as the run's artifacts. Caches: the Linux deps,tools.lock's tools, llvm-mingw and pip; no object cache yet.
.circleci/test-suites.yml, one CircleCI Smarter Testing suite,game-free checks:discoverlists the checks,runruns the ones it is given. No suite options: test impact analysis, dynamic splitting and auto-rerun are off.tests/run_all.pygains--list(the checks a run would start, one a line, running none; skipped ones leftout, since a name given runs its check even where its file skips this OS) and
--junit FILE(write_junit(): theresults as JUnit XML, one testcase a check, for CircleCI's test results).
Flags and settings
tests/run_all.py --list.circleci/test-suites.ymltests/run_all.py --junit FILE.circleci/test-suites.ymlMeasurements
main:
d9648863(2026-11-13)this PR: circleci-project-setup @
5cbdb17dHardware: CircleCI's Docker
largeexecutor (no game, no GPU)Scene: none: CI only
Method: the change's own checks:
circleci config validate,run_all.py --strict --list, andwrite_junit()on stub results. The first CircleCI run is pending.How to reproduce:
circleci config validate .circleci/config.yml;python -I -B tests/run_all.py --strict --listd96488635cbdb17dcircleci config validaterun_all.py --strict --list(Linux)Testing
Tested:
circleci config validatepasses.run_all.py --strict --listlists 517 checks on Linux (the Python testsnot skipped on Linux and gpu/vk/tests' four C++ checks), running none.
write_junit()on stub checks (a pass, afailure with an escape code in its output, a skip, the byte-compile) writes well-formed XML.
Not tested: the CircleCI run itself, and so the full
run_all.pywith--junitand the names given back by thesuite: the project's trigger starts runs on pushes to MagicBeanDev/Longshot only, so this fork's pull request gets none
yet.
circleci testsuite doctorwas not run: it runs the tests, and they are not run on this PC. Nothing in the gamechanges.
Needs other testers:
Screenshots
Nothing on screen
Risk and rollback
Nothing the game or a release uses changes:
run_all.py's two options are off unless given. CircleCI runs alongsideForgejo's CI and decides nothing on its own. Reverting the commit removes it.
Reviewer notes
The jobs follow the Forgejo workflows step by step;
apt-getis used where the images lack a tool (clang, spirv-tools,libdav1d, Wine). Left for a follow-up: the Vulkan back end's object caches (every build compiles it whole), and a
circleci testsuite doctorrun in CI.Issues
None
Checklist
For everyone
type(scope): description).main.python -I -B tests/run_all.pyrun and passing (any failure that also fails onmainis named above). (not run on this PC; CircleCI'schecksjob runs it, once the trigger starts a run for this pull request)third_party/untouched (a new folder with aPROVENANCE.mdinstead).If applicable
Assisted-by:/Co-Authored-By:trailers.🤖 Generated with Claude Code
5cbdb17d21834c588a79834c588a7972033e0c97gab9281 referenced this pull request2026-11-14 02:02:54 +00:00
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.