-
-
Notifications
You must be signed in to change notification settings - Fork 400
ci: replace cargo-make with a custom cargo-xtask #1461
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This removes the need for cargo-make and replaces it with a custom xtask binary. See <https://github.com/matklad/cargo-xtask> for info. Rearranges the CI workflow to use the new xtask and simplify which workflows that run.
There's a good CI time reduction from this due to lowering the number of jobs from 39 to 31. The latest CI run succeeded in 5:30. Previous runs were 8-15 mins. |
Does doing this have any workspace-related advantages other than speeding up the CI? I haven't worked with |
Regularly when I run cargo make, it tells me there's an update available. That was the bit that annoyed me enough to do this.
By using an xtask approach, all the CI steps that previously needed cargo-make already have the necessary tools they need to run installed (and these are likely cached between runs too). My secondary rationale is a general distaste for implementing imperative logic (here instructions on what and how to build) in declarative languages (here toml) or in shell scripts. The code for detecting the default workspace members to run the I also wanted something that would be easy to extend into watching for changes and checking that things are ready for PR in the background (to save having to make small clippy / typos / formatting issue updates), and which could our existing shell scripts (for releases and vhs generation) Lastly I wanted to experiment with the approach, as it seems like a neat idea generally. I don't think much of this really belongs in the changelog, which IMO should really contain info about user focused things and less internal things like this. |
Fair enough. |
This removes the need for cargo-make and replaces it with a custom xtask
binary. See https://github.com/matklad/cargo-xtask for info.
Rearranges the CI workflow to use the new xtask and simplify which
workflows that run.