I recently discovered cargo-hack which has the powerful (😉) feature of --feature-powerset, which allows easy testing of all possible combinations of features. This has two main benefits compared to what we are doing now:
much faster than the "one runner per feature set" approach, because it saves a lot of duplicate steps
more reliable than bespoke shell scripting
install-action
install-action, maintained by the same developer, is a convenient way to install tools like cross and cargo-hack.
Problems
Currently cargo-hack does not seem to support keeping the compiled artifacts for each run, which means we will be losing some functionality in our CI. This is why this PR is still a draft. I have submitted an issue to ask about this.
cargo-hack
I recently discovered cargo-hack which has the powerful (😉) feature of
--feature-powerset
, which allows easy testing of all possible combinations of features. This has two main benefits compared to what we are doing now:install-action
install-action, maintained by the same developer, is a convenient way to install tools like cross and cargo-hack.
Problems
Currently cargo-hack does not seem to support keeping the compiled artifacts for each run, which means we will be losing some functionality in our CI. This is why this PR is still a draft. I have submitted an issue to ask about this.