Repository navigation
Issue #252 solved: build and test the Rust crates in CI - #253
Open
PRINCEKK122 wants to merge 1 commit into
Open
PRINCEKK122 wants to merge 1 commit into
PRINCEKK122 wants to merge 1 commit into
Conversation
Nothing in CI touched the Rust side. meson-build.yml builds the C++ plugin on Windows with its test step commented out, and super-linter lints YAML and clang-format. So relay, src/server and baton had no automated coverage at all, which is how main came to be failing two relay tests without anyone noticing (oss-slu#251). Add a workflow that builds and tests all three crates on pull requests and on pushes to main, as a matrix so each crate reports separately, with fail-fast off so one failure does not hide the others. The relay needs wayland, x11, drm and fontconfig headers because of its iced dependency tree, installed only for that crate. No toolchain is named: rust-toolchain.toml at the repository root decides, once oss-slu#243 lands. Cargo registry and target output are cached per crate, keyed on each Cargo.lock.
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.
Closes #252.
Problem
Nothing in CI builds or tests the Rust crates.
.github/workflows/holdsmeson-build.yml, which builds the C++ plugin on Windows with its test step commented out, andsuper-linter.yml, which lints YAML, GitHub Actions and clang-format. Neither runscargoat all.So
relay,src/serverandbaton— where most current development happens — have had no automated coverage. That is howmaincame to be failing two relay tests with nobody aware of it (#251).Change
A
Rustworkflow running on pull requests and pushes tomain:relay,src/serverandxplane_plugin/subprojects/baton, so each crate reports as its own check.fail-fast: false, so one broken crate does not hide the state of the other two.cargo buildthencargo testper crate.target/cached per crate, keyed on that crate'sCargo.lock.rust-toolchain.tomlat the repository root decides, once Issue #188 solved: rename rust-toolchain.toml so the pin takes effect #243 lands. Until then runners use their default stable, which is the behaviour today.The relay step installs wayland, x11, drm, udev and fontconfig headers first. Its
iceddependency tree needs them to build; the other two crates are plainstdand skip that step.About the check on this PR
This may well come back red, and that is the point.
Two tests fail on
mainon Linux (#251):a_slow_python_reader_does_not_pace_imotionsanda_python_process_that_stops_reading_is_dropped_not_waited_on. Both assert on socket backpressure that never materialises when the kernel buffers are large enough to absorb the test's volume.Whether they also fail on a GitHub runner is unknown — nothing has ever run them there. This PR is the first time anyone finds out:
mainis genuinely broken on the project's own CI platform, and Two mirror tests from #247 fail on main on Linux #251 should be fixed before this merges.Either way the result is information the project does not currently have. I would rather surface it than special-case those two tests to get a green check.
Scope
Deliberately limited to the Rust crates. Re-enabling the commented-out Meson test step and the commented-out Ubuntu job is a separate question for whoever owns the plugin build.