ci: build against musl, and compile the environment tests on Windows - #1436
Merged
Merged
Conversation
Two platform holes, both of the same shape: a defect could only be found by being the user, because no job compiled the code where it lived. colibri did not build against musl at all (#1430): malloc_trim is a glibc extension and the guard was on __linux__. Every Linux job here runs glibc and the container image is debian-slim, so nothing could see it. An Alpine leg builds two engines and asserts the binary carries no reference to the glibc-only symbol, which is the half a musl build can check. The C test suite runs on the Linux leg only, which means every test that sets an environment variable was unobservable on the platform whose shim it depends on. That is how fourteen test files ended up each carrying a private _putenv_s helper around a setenv that wrote the wrong copy of the environment (#1420, #1429). The Windows leg now compiles and runs the two cheapest tests that drive engine code through the environment, next to the shim test itself. Neither leg is a performance gate and neither adds a minute to the critical path. They exist so the next defect of this class is a red check rather than an issue.
This was referenced Sep 11, 2026
This was referenced Sep 11, 2026
Merged
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.
Follow-up to #1435 and #1432, both merged. Neither could be verified by CI on the platform it was about.
musl. #1430 reported that colibri does not compile on Alpine. The fix is in, and nothing in CI could have caught the defect or can catch its return: every Linux job runs glibc and the container image is debian-slim. This adds an Alpine leg that builds colibri and olmoe and asserts the binary carries no reference to malloc_trim, which is the half a musl build can see.
Windows.
make test-cruns on the Linux leg only. Every test that sets an environment variable was therefore unobservable on the platform whose shim it depends on, which is exactly how fourteen test files came to carry a private _putenv_s helper (#1420, #1429). The Windows leg already compilestests/test_compat_env; this adds the two cheapest tests that reach the shim through engine code,test_omp_tuneandtest_qwen36_ctx.Verified locally: both tests build and pass, the workflow parses. The Alpine leg I cannot run here, so this PR is also its first run.