CI: source-regressions.yml is valid again after the dev merge (runner kept, dev's new tests in), and four game-free tests fixed #760
No reviewers
Labels
No labels
accessibility
autorelease: pending
autorelease: tagged
bug
dependencies
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
invalid
question
testing wanted
wontfix
No milestone
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set
Reference
MagicBeanDev/Hookshot!760
Loading…
Reference in a new issue
No description provided.
Delete branch "ci-fix-after-dev-merge"
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?
What broke
.github/workflows/source-regressions.ymlonmainis not a valid workflow.The merge of #695 (
2ca03169) brought the dev side's per-test workflow back around the runner job, with both of its path lists. That left twopull_request:keys underon:, and GitHub rejects the file. Every push tomainsince then shows "workflow file issue" with 0 jobs, and pull requests get no source checks at all.actionlint, which the same workflow would run, reports:
The fix
The file is the runner workflow again, with the parts worth keeping from each side.
From #695:
tests/run_all.pyruns every test file in one step, so all of them run even when one fails.--strict.cl.exepresent_rect andtest_invalidate_vcore.py --cxx cl) and the Builder steps.From the dev side and
mainsince:devas a trigger: pushes tomainordevand pull requests to either start the source checks, as the dev side's workflow did. The Windows builder now also runs on pushes todev, like the AppImage already does.test_bound_keys,test_build_log,test_builder_python,test_check_no_compiler,test_draw_binds,test_env_file,test_gpu_choice,test_mouse_native,test_mouse_settings,test_nvn_buffer_map,test_vk_swapchain_compat.test_nvn_buffer_mapkeeps the--cc gccthe dev list gave it, as an entry in the runner'sARGS. No other new arguments, installs or jobs came with the dev list.Test fixes
These checks were failing (the coordinator saw them on a PR run from current main). All the causes were in the tests, none in the game's code:
test_cpp_preflight(both systems): the build's compiler check takestoolchain.find()'s answer only when it is a file. The test's fake toolchain answered the bare--cxx g++, so the check said "no C compiler was found" before reaching the library check the test is about. The test now passes the compiler's full path.test_chunk_split: it usedPath.read_text(newline=...), which is new in Python 3.13. CI runs 3.12, the builder's own Python. It now reads withopen(newline="").test_bound_keys(Windows): the fixture built the executable's path with a forward slash.nn_hid.clooks for a backslash first, as a Windows path has, so it found the folder above and missed the test'shookshot_options.ini. The fixture now uses the system's separator.test_env_file(Windows): the fixture calledsetenvandunsetenv, which Windows lacks. It now has its own versions built on_putenv, which is what the game uses there.Fork runs
mainto the fork reproduces the failure: https://github.com/hckrman101/Hookshot/actions/runs/42518223091 (0 jobs).devon the fork), all green:Locally: actionlint is clean, and
tests/run_all.py --strictpasses 102 checks with 4 skipped (the game- and GPU-only ones).Independent check of
source-regressions.ymlwith the official actionlint 1.7.12 Windows binary:branchesandpull_requestkeys.Command:
actionlint -shellcheck= -pyflakes= source-regressions.yml. Those flags disable only the optional external analyzers; workflow and expression checks remain enabled. The downloaded binary matched both the release digest and published checksum.This check covers this workflow file, not the other changes in the PR. It also explains the missing source-check run on #758.